summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides')
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/CTOCWidget.js169
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/overlay.js142
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides-default.css9
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides-frames.css73
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides-plain.css1
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides-table.css41
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides-w3c.css1
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides.css119
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides.js120
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/ua.js135
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbCollapsibleLists.js537
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbDOM.js374
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbDebug.js311
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbLibrary.js80
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbStyle-css.js791
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbStyle-nn4.js485
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbStyle-not-supported.js77
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbStyle.js295
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/fo/param.xml356
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/fo/param.xsl74
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/fo/plain-titlepage.xml79
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/fo/plain-titlepage.xsl187
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/fo/plain.xsl528
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/css.xsl46
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/default.xsl261
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/flat.xsl70
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/frames.xsl2016
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/graphics.xsl151
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/jscript.xsl127
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/param.xml1376
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/param.xsl68
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/plain.xsl472
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/slides-common.xsl1541
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/tables.xsl336
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/vslides.xsl667
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/w3c.xsl376
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/htmlhelp/htmlhelp.xsl89
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/default.xsl600
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/cmp.xsl348
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/date-time.xsl1524
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/example.xsl90
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/markup.xsl789
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/math.xsl704
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/node.xsl229
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/stdlib.xsl340
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/string.xsl1233
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/svg.xsl177
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/uri.xsl580
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/svg/default.xsl686
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/css.xsl47
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/default.xsl246
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/flat.xsl71
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/frames.xsl1982
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/graphics.xsl152
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/jscript.xsl128
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/param.xsl70
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/plain.xsl470
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/slides-common.xsl1534
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/tables.xsl334
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/vslides.xsl652
-rw-r--r--3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/w3c.xsl358
61 files changed, 25924 insertions, 0 deletions
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/CTOCWidget.js b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/CTOCWidget.js
new file mode 100644
index 0000000..a411ea9
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/CTOCWidget.js
@@ -0,0 +1,169 @@
+/*
+ * CTOCWidget.js
+ * $Revision: 1.3 $ $Date: 2003/07/14 06:02:50 $
+ */
+
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Netscape code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 2003
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s): Bob Clary <bclary@netscape.com>
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+function CTOCWidget(domTOCModel, target)
+{
+ if (domTOCModel.documentElement.nodeName != 'toc')
+ {
+ throw 'CTOCWidget called on non toc Document: ' + domTOCModel.nodeName;
+ }
+
+ this.model = domTOCModel;
+ this.target = target;
+ this.view = document.createElement('div');
+ this.view.setAttribute('class', CTOCWidget._classprefix + '_view');
+
+ var modelItems = domTOCModel.documentElement.childNodes;
+ for (var i = 0; i < modelItems.length; i++)
+ {
+ var modelItem = modelItems.item(i);
+ if (modelItem.nodeType == Node.ELEMENT_NODE)
+ {
+ var viewItem = CTOCWidget.createItemView(modelItem, target);
+ this.view.appendChild(viewItem);
+ }
+ }
+}
+
+CTOCWidget._handleImages = { open: '/toolbox/examples/2003/CTOCWidget/minus.gif', closed: '/toolbox/examples/2003/CTOCWidget/plus.gif', height: '12px', width: '16px'};
+CTOCWidget._classprefix = 'CTOCWidget';
+
+CTOCWidget.createItemView = function (modelItem, target)
+{
+ if (modelItem.nodeType != Node.ELEMENT_NODE)
+ {
+ throw 'CTOCWidget.createItemView called on non-Element: ' + modelItem.nodeName;
+ }
+
+ var i;
+
+ var viewItem = document.createElement('div');
+ viewItem.setAttribute('class', CTOCWidget._classprefix + '_item');
+
+ var viewItemHandle = document.createElement('div');
+ viewItemHandle.setAttribute('class', CTOCWidget._classprefix + '_itemhandle');
+ viewItemHandle.style.cursor = 'pointer';
+
+ var viewItemHandleImg = document.createElement('img');
+ viewItemHandleImg.style.height = CTOCWidget._handleImages.height;
+ viewItemHandleImg.style.width = CTOCWidget._handleImages.width;
+ viewItemHandleImg.addEventListener('click', CTOCWidget.toggleHandle, false);
+
+ var viewItemHandleLink;
+ if (!modelItem.getAttribute('url'))
+ {
+ viewItemHandleLink = document.createElement('span');
+ }
+ else
+ {
+ viewItemHandleLink = document.createElement('a');
+ viewItemHandleLink.setAttribute('href', modelItem.getAttribute('url'));
+ viewItemHandleLink.setAttribute('target', target);
+ }
+ viewItemHandleLink.appendChild(document.createTextNode(modelItem.getAttribute('title')));
+
+ viewItemHandle.appendChild(viewItemHandleImg);
+ viewItemHandle.appendChild(viewItemHandleLink);
+ viewItem.appendChild(viewItemHandle);
+
+ if (modelItem.childNodes.length == 0)
+ {
+ viewItemHandleImg.setAttribute('src', CTOCWidget._handleImages.open);
+ }
+ else
+ {
+ viewItemHandleImg.setAttribute('src', CTOCWidget._handleImages.closed);
+
+ var viewItemChildren = document.createElement('div');
+ viewItemChildren.setAttribute('class', CTOCWidget._classprefix + '_itemchildren');
+ viewItemChildren.style.display = 'none';
+ viewItemChildren.style.position = 'relative';
+ viewItemChildren.style.left = '1em';
+
+ for (i = 0; i < modelItem.childNodes.length; i++)
+ {
+ var modelItemChild = modelItem.childNodes.item(i);
+ if (modelItemChild.nodeType == Node.ELEMENT_NODE)
+ {
+ viewItemChildren.appendChild(CTOCWidget.createItemView(modelItemChild, target));
+ }
+ }
+
+ viewItem.appendChild(viewItemChildren);
+ }
+
+ return viewItem;
+};
+
+// fires on img part of the handle
+CTOCWidget.toggleHandle = function(e)
+{
+ switch (e.eventPhase)
+ {
+ case Event.CAPTURING_PHASE:
+ case Event.BUBBLING_PHASE:
+ return true;
+
+ case Event.AT_TARGET:
+
+ e.preventBubble();
+
+ var domHandle = e.target.parentNode;
+ var domChildren = domHandle.nextSibling;
+
+ if (!domChildren)
+ {
+ return true;
+ }
+
+ switch(domChildren.style.display)
+ {
+ case '':
+ case 'block':
+ domChildren.style.display = 'none';
+ e.target.setAttribute('src', CTOCWidget._handleImages.closed);
+ break;
+ case 'none':
+ domChildren.style.display = 'block';
+ e.target.setAttribute('src', CTOCWidget._handleImages.open);
+ break;
+ default:
+ return false;
+ }
+
+ return true;
+
+ default:
+ dump('Unknown Event Phase ' + e.eventPhase);
+ break;
+ }
+
+ return true;
+}
+
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/overlay.js b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/overlay.js
new file mode 100644
index 0000000..fc010fb
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/overlay.js
@@ -0,0 +1,142 @@
+// -*- Java -*-
+//
+// Overlay.js, adapted from Floating image II on dynamicdrive.com
+/* Usage:
+<html>
+<head>
+<script LANGUAGE="JavaScript1.2" src="overlay.js"></script>
+...rest of head...
+</head>
+<body onload="overlaySetup(corner)">
+<div id="overlayDiv" STYLE="position:absolute;visibility:visible;">
+...body of overlay...
+</div>
+...rest of page...
+*/
+
+var overlayNS4 = document.layers ? 1 : 0;
+var overlayIE = document.all ? 1 : 0;
+var overlayNS6 = document.getElementById && !document.all ? 1 : 0;
+
+var overlayPadX = 15;
+var overlayPadY = 15;
+var overlayDelay = 60;
+
+var overlayCorner = 'ur'; // ul, ll, ur, lr, uc, lc, cl, cr
+
+function overlayRefresh() {
+ var overlayLx = 0;
+ var overlayLy = 0;
+
+ var overlayX = 0;
+ var overlayY = 0;
+ var overlayW = 0;
+ var overlayH = 0;
+ var contentH = 0;
+
+ var links = document.getElementsByTagName("body")[0];
+
+ if (overlayIE) {
+ overlayLx = document.body.clientWidth;
+ overlayLy = document.body.clientHeight;
+
+ if (document.body.parentElement) {
+ // For IE6
+ overlayLx = document.body.parentElement.clientWidth;
+ overlayLy = document.body.parentElement.clientHeight;
+ }
+
+ overlayH = overlayDiv.offsetHeight;
+ overlayW = body.offsetWidth; // overlayDiv.offsetWidth;
+ contentH = body.offsetHeight;
+ } else if (overlayNS4) {
+ overlayLy = window.innerHeight;
+ overlayLx = window.innerWidth;
+ overlayH = document.overlayDiv.clip.height;
+ overlayW = body.clip.width; // document.overlayDiv.clip.width;
+ contentH = body.clip.height;
+ } else if (overlayNS6) {
+ var odiv = document.getElementById('overlayDiv');
+
+ overlayLy = window.innerHeight;
+ overlayLx = window.innerWidth;
+ overlayH = odiv.offsetHeight;
+ overlayW = odiv.offsetWidth; // body.offsetWidth;
+ contentH = odiv.offsetHeight;
+ }
+
+ if (overlayCorner == 'ul') {
+ overlayX = overlayPadX;
+ overlayY = overlayPadY;
+ } else if (overlayCorner == 'cl') {
+ overlayX = overlayPadX;
+ overlayY = (overlayLy - overlayH) / 2;
+ } else if (overlayCorner == 'll') {
+ overlayX = overlayPadX;
+ overlayY = (overlayLy - overlayH) - overlayPadY;
+ } else if (overlayCorner == 'ur') {
+ overlayX = (overlayLx - overlayW) - overlayPadX;
+ overlayY = overlayPadY;
+ } else if (overlayCorner == 'cr') {
+ overlayX = (overlayLx - overlayW) - overlayPadX;
+ overlayY = (overlayLy - overlayH) / 2;
+ } else if (overlayCorner == 'lr') {
+ overlayX = (overlayLx - overlayW) - overlayPadX;
+ overlayY = (overlayLy - overlayH) - overlayPadY;
+ } else if (overlayCorner == 'uc') {
+ overlayX = (overlayLx - overlayW) / 2;
+ overlayY = overlayPadY;
+ } else { // overlayCorner == 'lc'
+ overlayX = (overlayLx - overlayW) / 2;
+ overlayY = (overlayLy - overlayH) - overlayPadY;
+ }
+
+ if (overlayIE) {
+ overlayDiv.style.left=overlayX;
+ overlayDiv.style.top=overlayY+document.body.scrollTop;
+
+ if (contentH > overlayLy) {
+ overlayDiv.style.visibility = "hidden";
+ }
+ } else if (overlayNS4) {
+ document.overlayDiv.pageX=overlayX;
+ document.overlayDiv.pageY=overlayY+window.pageYOffset;
+ document.overlayDiv.visibility="visible";
+
+ if (contentH > overlayLy) {
+ document.overlayDiv.style.visibility = "hidden";
+ }
+ } else if (overlayNS6) {
+ var div = document.getElementById("overlayDiv");
+ var leftpx = overlayX;
+ var toppx = overlayY+window.pageYOffset;
+ var widthpx = overlayW;
+
+ div.style.left = leftpx + "px";
+ div.style.top = toppx + "px";
+ div.style.width = widthpx + "px";
+
+ if (contentH > overlayLy) {
+ div.style.visibility = "hidden";
+ } else {
+ div.style.visibility = "visible";
+ }
+ }
+}
+
+function onad() {
+ loopfunc();
+}
+
+function loopfunc() {
+ overlayRefresh();
+ setTimeout('loopfunc()',overlayDelay);
+}
+
+function overlaySetup(corner) {
+ overlayCorner = corner;
+
+ if (overlayIE || overlayNS4 || overlayNS6) {
+ onad();
+ }
+}
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides-default.css b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides-default.css
new file mode 100644
index 0000000..1022d6b
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides-default.css
@@ -0,0 +1,9 @@
+@import url('slides.css');
+
+.toclink { font-size: 10pt;
+ font-weight: normal;
+ }
+
+.toclink a { color: blue; }
+.toclink a:link { color: blue; }
+.toclink a:visited { color: blue; }
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides-frames.css b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides-frames.css
new file mode 100644
index 0000000..698b6a3
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides-frames.css
@@ -0,0 +1,73 @@
+@import url('slides.css');
+
+.toc-body { margin-left: 2px;
+ margin-right: 2px;
+ }
+
+.foil-body { margin-left: 2px;
+ margin-right: 2px;
+ }
+
+h1.title { margin-top: 0px;
+ padding-top: 0px;
+ }
+
+.navhead { visibility: visible;
+ }
+
+.navfoot { visibility: visible;
+ }
+
+/* ====================================================================== */
+
+.navfoot { border-top: 1px solid black;
+ margin-top: 10px;
+ padding-top: 4px;
+ }
+/* ====================================================================== */
+
+.toc { font-weight: bold;
+ font-size: 10pt;
+ }
+
+.toc a { text-decoration: none; }
+.toc a:link { color: blue; }
+.toc a:visited { color: blue; }
+
+.toc .toc-foilgroup a { color: red; }
+.toc .toc-foilgroup a:link { color: red; }
+.toc .toc-foilgroup a:visited { color: red; }
+
+.toc .toc-titlefoil a { color: black; }
+.toc .toc-titlefoil a:link { color: black; }
+.toc .toc-titlefoil a:visited { color: black; }
+
+.toc .toc-foil a { color: blue; }
+.toc .toc-foil a:link { color: blue; }
+.toc .toc-foil a:visited { color: blue; }
+
+.toc-slidesinfo { font-family: sans-serif;
+ font-weight: bold;
+ text-align: center;
+ }
+
+.toc-titlefoil { font-family: sans-serif;
+ font-weight: bold;
+ text-align: center;
+ }
+
+.toc-foilgroup { font-family: sans-serif;
+ margin-left: 0.25in;
+ text-indent: -0.25in;
+ font-weight: bold;
+ color: red;
+ }
+
+.toc-foil { font-family: sans-serif;
+ font-size: 10pt;
+ margin-left: 0.25in;
+ text-indent: -0.4in;
+ font-weight: bold;
+ color: blue;
+ }
+
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides-plain.css b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides-plain.css
new file mode 100644
index 0000000..c22f289
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides-plain.css
@@ -0,0 +1 @@
+@import url('slides.css');
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides-table.css b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides-table.css
new file mode 100644
index 0000000..1c195c9
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides-table.css
@@ -0,0 +1,41 @@
+@import url('slides.css');
+
+.toc-body { margin-left: 2px;
+ margin-right: 2px;
+ }
+
+.foil-body { margin-left: 2px;
+ margin-right: 2px;
+ }
+
+.foilgroup-body { margin-left: 2px;
+ margin-right: 2px;
+ }
+
+h1.title {
+ margin-top: 0px;
+ padding-top: 0px;
+ }
+
+/* ToC Stuff */
+
+.ttoc {
+ font-size: 10pt;
+ color: white;
+ }
+
+.ttoc a { text-decoration: none; }
+.ttoc a:link { color: white }
+.ttoc a:visited { color: white }
+
+.ttoc-title {
+ font-size: 10pt;
+ }
+
+.ttoc-foilset {
+ font-size: 10pt;
+ }
+
+.ttoc-foil {
+ font-size: 10pt;
+ }
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides-w3c.css b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides-w3c.css
new file mode 100644
index 0000000..c22f289
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides-w3c.css
@@ -0,0 +1 @@
+@import url('slides.css');
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides.css b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides.css
new file mode 100644
index 0000000..1007478
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides.css
@@ -0,0 +1,119 @@
+/* General formatting */
+
+body { font-family: sans-serif;
+ font-weight: bold;
+ }
+
+.copyright { color: #7F7F7F;
+ }
+
+/* Title page formatting */
+
+
+.slidesinfo { text-align: center;
+ font-size: 16pt;
+ }
+
+.slidesinfo h1.title { color: blue;
+ }
+.slidesinfo h2.subtitle { color: blue;
+ }
+.slidesinfo h1.author { color: green;
+ }
+
+.slidesinfo .copyright { color: black;
+ }
+
+
+/* ToC page formatting */
+
+.tocpage h1.title { color: blue;
+ text-align: center;
+ }
+
+.tocpage a { text-decoration: none; }
+.tocpage a:link { color: blue; }
+.tocpage a:visited { color: blue; }
+
+.toc-body { margin-left: 0.5in;
+ margin-right: 0.5in;
+ }
+
+/* Foil page formatting */
+
+.foil { font-size: 16pt;
+ }
+.foil h1.title { text-align: center;
+ color: blue;
+ padding-top: 0pt;
+ margin-top: 0pt;
+ }
+.foil h2.subtitle { text-align: center;
+ color: blue;
+ padding-top: 0pt;
+ margin-top: 0pt;
+ }
+
+.foil pre { font-size: 16pt;
+ }
+
+.foil-body { margin-left: 0.5in;
+ margin-right: 0.5in;
+ }
+
+/* Foilgroup page formatting */
+
+.foilgroup { font-size: 16pt;
+ }
+.foilgroup h1.title { text-align: center;
+ color: red;
+ padding-top: 0pt;
+ margin-top: 0pt;
+ }
+.foilgroup h2.subtitle { text-align: center;
+ color: blue;
+ padding-top: 0pt;
+ margin-top: 0pt;
+ }
+
+.foilgroup-body { margin-left: 0.5in;
+ margin-right: 0.5in;
+ }
+
+/* Navigation header formatting */
+
+.navhead { border-bottom: 1px solid black;
+ margin-bottom: 10px;
+ padding-bottom: 4px;
+ }
+
+.navhead hr.top-nav-sep { display: none; }
+
+.navhead .slidestitle { font-weight: normal;
+ font-size: 10pt;
+ font-style: italic;
+ }
+
+/* Navigation footer formatting */
+
+.navfoot { border-top: 1px solid black;
+ margin-top: 10px;
+ padding-top: 4px;
+ }
+
+.navfoot hr.bottom-nav-sep { display: none; }
+
+/* General navigation formatting */
+
+.link-text { font-weight: bold;
+ font-size: 10pt;
+ }
+
+
+.link-text a { text-decoration: none; }
+.link-text a:link { color: blue; }
+.link-text a:visited { color: blue; }
+
+.no-link-text { color: #7F7F7F; }
+
+/* EOF */
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides.js b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides.js
new file mode 100644
index 0000000..2e48a7c
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/slides.js
@@ -0,0 +1,120 @@
+// -*- Java -*-
+//
+// $Id: slides.js 4931 2005-06-21 15:45:53Z kosek $
+//
+// Copyright (C) 2002 Norman Walsh
+//
+// You are free to use, modify and distribute this software without limitation.
+// This software is provided "AS IS," without a warranty of any kind.
+//
+// This script assumes that the Netscape 'ua.js' module has also been loaded.
+
+function newPage(filename, overlay) {
+ divs = document.getElementsByTagName("div");
+
+ if (divs) {
+ var xdiv = divs[0];
+
+ if (xdiv) {
+ var xid = xdiv.getAttribute("id");
+
+ var mytoc = window.top.frames[0];
+ if (mytoc.lastUnderlined) {
+ mytoc.lastUnderlined.style.textDecoration = "none";
+ }
+
+ var tdiv = xbGetElementById(xid, mytoc);
+
+ if (tdiv) {
+ var ta = tdiv.getElementsByTagName("a").item(0);
+ ta.style.textDecoration = "underline";
+ mytoc.lastUnderlined = ta;
+ }
+ }
+ }
+
+ if (overlay != 0) {
+ overlaySetup('lc');
+ }
+}
+
+
+function navigate (evt) {
+ var kc = -1;
+
+ if (navigator.org == 'microsoft' || navigator.family == 'opera') {
+ kc = window.event.keyCode;
+ } else if (navigator.family == 'gecko') {
+ kc = evt.keyCode;
+ if(!kc) {
+ kc = evt.which;
+ }
+ } else {
+ kc = evt.which;
+ }
+
+ var forward = (kc == 110) || (kc == 78) || (kc == 32)
+ || (kc == 10) || (kc == 13) || (kc == 34)
+ || (kc == 39);
+ /* n, N, SPACE, ENTER, RETURN, PAGE UP, RIGHT ARROW */
+ var backward = (kc == 112) || (kc == 80) || (kc == 8)
+ || (kc == 33) || (kc == 37);
+ /* p, P, BACKSPACE, PAGE DOWN, LEFT ARROW */
+ var up = (kc == 117) || (kc == 85) || (kc == 38);
+ /* u, U, UP ARROW */
+ var home = (kc == 104) || (kc == 72) || (kc == 36);
+ /* h, H, HOME */
+ var toc = (kc == 116) || (kc == 84);
+ /* t, T */
+ /* previously included META (kc == 244) */
+
+ var links = document.getElementsByTagName("link");
+
+ var count = 0;
+ var target = "";
+
+ for (count = 0; count < links.length; count++) {
+ if (home && (links[count].getAttribute("rel") == 'top')) {
+ target = links[count].getAttribute("href");
+ }
+ if (toc && (links[count].getAttribute("rel") == 'contents')) {
+ target = links[count].getAttribute("href");
+ }
+ if (up && (links[count].getAttribute("rel") == 'up')) {
+ target = links[count].getAttribute("href");
+ }
+ if (forward && (links[count].getAttribute("rel") == 'next')) {
+ target = links[count].getAttribute("href");
+ }
+ if (backward && (links[count].getAttribute("rel") == 'previous')) {
+ target = links[count].getAttribute("href");
+ }
+ }
+
+ if (target != "") {
+ if (window.top.frames[1]) {
+ window.top.frames[1].location = target;
+ } else {
+ window.location = target;
+ }
+ }
+
+ return false;
+}
+
+function toggletoc (img, width, hidegraphic, showgraphic) {
+ var fsc = top.GetElementsByTagName('frameset');
+ if (fsc) {
+ var fs = fsc[0];
+ if (fs) {
+ if (fs.cols == "0,*") {
+ fs.cols = width + ",*";
+ img.src = hidegraphic;
+ } else {
+ fs.cols = "0,*";
+ img.src = showgraphic;
+ }
+ }
+ }
+}
+
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/ua.js b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/ua.js
new file mode 100644
index 0000000..8987659
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/ua.js
@@ -0,0 +1,135 @@
+/*
+ * ua.js
+ * $Revision: 1.2 $ $Date: 2003/02/07 16:04:17 $
+ */
+
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Netscape code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 2001
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s): Bob Clary <bclary@netscape.com>
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+function xbDetectBrowser()
+{
+ var oldOnError = window.onerror;
+ var element = null;
+
+ window.onerror = null;
+
+ // work around bug in xpcdom Mozilla 0.9.1
+ window.saveNavigator = window.navigator;
+
+ navigator.OS = '';
+ navigator.version = parseFloat(navigator.appVersion);
+ navigator.org = '';
+ navigator.family = '';
+
+ var platform;
+ if (typeof(window.navigator.platform) != 'undefined')
+ {
+ platform = window.navigator.platform.toLowerCase();
+ if (platform.indexOf('win') != -1)
+ navigator.OS = 'win';
+ else if (platform.indexOf('mac') != -1)
+ navigator.OS = 'mac';
+ else if (platform.indexOf('unix') != -1 || platform.indexOf('linux') != -1 || platform.indexOf('sun') != -1)
+ navigator.OS = 'nix';
+ }
+
+ var i = 0;
+ var ua = window.navigator.userAgent.toLowerCase();
+
+ if (ua.indexOf('opera') != -1)
+ {
+ i = ua.indexOf('opera');
+ navigator.family = 'opera';
+ navigator.org = 'opera';
+ navigator.version = parseFloat('0' + ua.substr(i+6), 10);
+ }
+ else if ((i = ua.indexOf('msie')) != -1)
+ {
+ navigator.org = 'microsoft';
+ navigator.version = parseFloat('0' + ua.substr(i+5), 10);
+
+ if (navigator.version < 4)
+ navigator.family = 'ie3';
+ else
+ navigator.family = 'ie4'
+ }
+ else if (ua.indexOf('gecko') != -1)
+ {
+ navigator.family = 'gecko';
+ var rvStart = ua.indexOf('rv:');
+ var rvEnd = ua.indexOf(')', rvStart);
+ var rv = ua.substring(rvStart+3, rvEnd);
+ var rvParts = rv.split('.');
+ var rvValue = 0;
+ var exp = 1;
+
+ for (var i = 0; i < rvParts.length; i++)
+ {
+ var val = parseInt(rvParts[i]);
+ rvValue += val / exp;
+ exp *= 100;
+ }
+ navigator.version = rvValue;
+
+ if (ua.indexOf('netscape') != -1)
+ navigator.org = 'netscape';
+ else if (ua.indexOf('compuserve') != -1)
+ navigator.org = 'compuserve';
+ else
+ navigator.org = 'mozilla';
+ }
+ else if ((ua.indexOf('mozilla') !=-1) && (ua.indexOf('spoofer')==-1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('opera')==-1)&& (ua.indexOf('webtv')==-1) && (ua.indexOf('hotjava')==-1))
+ {
+ var is_major = parseFloat(navigator.appVersion);
+
+ if (is_major < 4)
+ navigator.version = is_major;
+ else
+ {
+ i = ua.lastIndexOf('/')
+ navigator.version = parseFloat('0' + ua.substr(i+1), 10);
+ }
+ navigator.org = 'netscape';
+ navigator.family = 'nn' + parseInt(navigator.appVersion);
+ }
+ else if ((i = ua.indexOf('aol')) != -1 )
+ {
+ // aol
+ navigator.family = 'aol';
+ navigator.org = 'aol';
+ navigator.version = parseFloat('0' + ua.substr(i+4), 10);
+ }
+ else if ((i = ua.indexOf('hotjava')) != -1 )
+ {
+ // hotjava
+ navigator.family = 'hotjava';
+ navigator.org = 'sun';
+ navigator.version = parseFloat(navigator.appVersion);
+ }
+
+ window.onerror = oldOnError;
+}
+
+xbDetectBrowser();
+
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbCollapsibleLists.js b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbCollapsibleLists.js
new file mode 100644
index 0000000..6a4f93c
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbCollapsibleLists.js
@@ -0,0 +1,537 @@
+/*
+xbCollapsibleLists.js 2001-02-26
+
+Contributor(s): Michael Bostock, Netscape Communications, Copyright 1997
+ Bob Clary, Netscape Communications, Copyright 2001
+ Seth Dillingham, Macrobyte Resources, Copyright 2001
+ Mark Filanowicz, Amdahl IT Services, Copyright 2002
+
+Netscape grants you a royalty free license to use, modify or
+distribute this software provided that this copyright notice
+appears on all copies. This software is provided "AS IS,"
+without a warranty of any kind.
+
+See xbCollapsibleLists.js.changelog.html for details of changes.
+*/
+
+
+var xbcl__id = 0;
+var xbcl_item_id = 0;
+var xbcl_mLists = new Array();
+var xbcl_parentElement = null;
+
+document.lists = xbcl_mLists;
+
+function List(visible, width, height, bgColor, collapsedImageURL, expandedImageURL)
+{
+ this.lists = new Array(); // sublists
+ this.items = new Array(); // layers
+ this.types = new Array(); // type
+ this.strs = new Array(); // content
+ this.visible = visible;
+ this.id = xbcl__id;
+ this.width = width || 350;
+ this.height = height || 22;
+
+ this.collapsedImageURL = collapsedImageURL || 'false.gif';
+ this.expandedImageURL = expandedImageURL || 'true.gif';
+
+ if (bgColor)
+ this.bgColor = bgColor;
+
+ xbcl_mLists[xbcl__id++] = this;
+}
+
+function xbcl_SetFont(i,j)
+{
+ this.fontIntro = i;
+ this.fontOutro = j;
+}
+
+function xbcl_GetFont()
+{
+ return [this.fontIntro, this.fontOutro];
+}
+
+function xbcl_setIndent(indent)
+{
+ this.i = indent;
+ if (this.i < 0)
+ {
+ this.i = 0;
+ this.space = false;
+ }
+ else
+ this.space = true;
+}
+
+function xbcl_getIndent(indent)
+{
+ return this.i;
+}
+
+function xbcl_writeItemDOMHTML( obj, s, flList, listObj )
+{
+ var styleObj;
+ var outerDiv, innerLeft, innerRight;
+ var str;
+ var leftEdge = 0;
+
+ styleObj = new xbStyle(obj);
+ styleObj.setVisibility('hidden');
+ outerDiv = document.createElement( "DIV" );
+ outerDiv.id = "DIV_" + obj.id;
+ styleObj = new xbStyle( outerDiv );
+ styleObj.setWidth( this.width );
+
+ if ( flList )
+ {
+ innerLeft = document.createElement( "DIV" );
+ innerLeft.style.position = "absolute";
+ innerLeft.style.valign = "middle";
+ leftEdge = 15;
+
+ styleObj = new xbStyle( innerLeft );
+ styleObj.setWidth( 15 );
+ styleObj.setBackgroundColor( "transparent" );
+
+ if ( listObj.visible )
+ str = '<A TARGET="_self" HREF="javascript:xbcl_expand(' + listObj.id + ');"><IMG BORDER="0" SRC="' + this.expandedImageURL + '" ID="_img' + listObj.id + '" NAME="_img' + listObj.id + '"></A>';
+ else
+ str = '<A TARGET="_self" HREF="javascript:xbcl_expand(' + listObj.id + ');"><IMG BORDER="0" SRC="' + this.collapsedImageURL + '" ID="_img' + listObj.id + '" NAME="_img' + listObj.id + '"></A>';
+
+ innerLeft.innerHTML = str;
+ outerDiv.appendChild( innerLeft );
+ }
+ else if ( this.space )
+ leftEdge = 15;
+
+ innerRight = document.createElement( "DIV" );
+ innerRight.noWrap = true;
+ innerRight.style.position = "absolute";
+
+ styleObj = new xbStyle( innerRight );
+ styleObj.setLeft( leftEdge + ( this.l * this.i ) );
+ styleObj.setWidth( this.width - 15 - this.l * this.i );
+ styleObj.setBackgroundColor( "transparent" );
+
+ // start of change by Mark Filanowicz 02-22-2002
+ if ( flList )
+ {
+ s = this.fontIntro + '<A TARGET="_self" STYLE="text-decoration: none;" HREF="javascript:xbcl_expand(' + listObj.id + ');">' + s + this.fontOutro;
+ }
+ else
+ {
+ s = this.fontIntro + s + this.fontOutro;
+ }
+ // end of change by Mark Filanowicz 02-22-2002
+
+
+ innerRight.innerHTML = s;
+ outerDiv.appendChild( innerRight );
+
+ obj.appendChild( outerDiv );
+
+ return;
+}
+
+function xbcl_writeItem( obj, s, flList, listObj )
+{
+ var cellStyle = '';
+ var str = '';
+ var styleObj = new xbStyle( obj );
+
+ styleObj.setVisibility( 'hidden' );
+
+ if ( document.body && document.body.style )
+ cellStyle = ' style="background-color: transparent;"';
+
+ str += '<TABLE WIDTH='+this.width+' NOWRAP BORDER="0" CELLPADDING="0" CELLSPACING="0"><TR>';
+
+ if ( flList )
+ {
+ str += '<TD WIDTH="15" NOWRAP VALIGN="MIDDLE"' + cellStyle + '>';
+ str += '<A TARGET="_self" HREF="javascript:xbcl_expand(' + listObj.id + ');">';
+
+ if ( listObj.visible )
+ str += '<IMG BORDER="0" SRC="' + this.expandedImageURL + '" ID="_img' + listObj.id + '" NAME="_img' + listObj.id + '">';
+ else
+ str += '<IMG BORDER="0" SRC="' + this.collapsedImageURL + '" ID="_img' + listObj.id + '" NAME="_img' + listObj.id + '">';
+
+ str += '</A></TD>';
+ }
+ else if (this.space)
+ str += '<TD WIDTH="15" NOWRAP' + cellStyle + '>&nbsp;</TD>';
+
+ if (this.l>0 && this.i>0)
+ str += '<TD WIDTH="' + this.l*this.i+ '" NOWRAP' + cellStyle + '>&nbsp;</TD>';
+
+ str += '<TD HEIGHT="' + ( this.height - 3) + '" WIDTH="' + ( this.width - 15 - this.l * this.i ) + '" VALIGN="MIDDLE" ALIGN="LEFT"' + cellStyle + '>';
+
+ // start of change by Mark Filanowicz 02-22-2002
+ if ( flList )
+ {
+ str += this.fontIntro + '<A TARGET="_self" STYLE="text-decoration: none;" HREF="javascript:xbcl_expand(' + listObj.id + ');">' + s + this.fontOutro;
+ }
+ else
+ {
+ str += this.fontIntro + s + this.fontOutro;
+ }
+ // end of change by Mark Filanowicz 02-22-2002
+
+ str += '</TD></TR></TABLE>';
+
+ styleObj.setInnerHTML( str );
+
+ return;
+}
+
+function xbcl_writeList()
+{
+ var item;
+ var i;
+ var flList;
+
+ for ( i = 0; i < this.types.length; i++ )
+ {
+ item = this.items[ i ];
+ flList = ( this.types[ i ] == 'list' );
+
+ this._writeItem( item, this.strs[ i ], flList, this.lists[ i ] );
+
+ if ( flList && this.lists[ i ].visible )
+ this.lists[ i ]._writeList();
+ }
+
+ this.built = true;
+ this.needsRewrite = false;
+ self.status = '';
+}
+
+function xbcl_showList()
+{
+ var item;
+ var styleObj;
+ var i;
+
+ for (i = 0; i < this.types.length; i++)
+ {
+ item = this.items[i];
+ styleObj = new xbStyle(item);
+ styleObj.setClipLeft(0);
+ styleObj.setClipRight(this.width);
+ styleObj.setClipTop(0);
+ if (item.height)
+ {
+ styleObj.setClipBottom(item.height);
+ styleObj.setHeight(item.height);
+ }
+ else
+ {
+ styleObj.setClipBottom(this.height);
+ styleObj.setHeight(this.height);
+ }
+
+ if ( this.visible )
+ styleObj.setVisibility( 'visible' );
+
+ var bg = item.oBgColor || this.bgColor;
+ if ((bg == null) || (bg == 'null'))
+ bg = '';
+
+ styleObj.setBackgroundColor(bg);
+
+ if (this.types[i] == 'list' && this.lists[i].visible)
+ this.lists[i]._showList();
+ }
+ this.shown = true;
+ this.needsUpdate = false;
+}
+
+function xbcl_setImage(list, item, file)
+{
+ var id = '_img' + list.id;
+ var img = null;
+
+ // for DOMHTML or IE4 use cross browser getElementById from xbStyle
+ // can't use it for NN4 since it only works for layers in NN4
+ if (document.layers)
+ img = item.document.images[0];
+ else
+ img = xbGetElementById(id);
+
+ if (img)
+ img.src = file;
+}
+
+function xbcl_getHeight()
+{
+ var totalHeight = 0;
+ var i;
+
+ if (!this.visible)
+ return 0;
+
+ for (i = 0; i < this.types.length; i++)
+ {
+ if (this.items[i].height)
+ totalHeight += this.items[i].height;
+ else
+ totalHeight += this.height;
+
+ if ((this.types[i] == 'list') && this.lists[i].visible)
+ {
+ totalHeight += this.lists[i].getHeight();
+ }
+ }
+
+ return totalHeight;
+}
+
+function xbcl_updateList(pVis, x, y)
+{
+ var currTop = y;
+ var item;
+ var styleObj;
+ var i;
+
+ for (i = 0; i < this.types.length; i++)
+ {
+ item = this.items[i];
+ styleObj = new xbStyle(item);
+
+ if (this.visible && pVis)
+ {
+ styleObj.moveTo(x, currTop);
+ if (item.height) // allow custom heights for each item
+ currTop += item.height;
+ else
+ currTop += this.height;
+
+ styleObj.setVisibility('visible');
+ }
+ else
+ {
+ styleObj.setVisibility('hidden');
+ }
+
+ if (this.types[i] == 'list')
+ {
+ if (this.lists[i].visible)
+ {
+ if (!this.lists[i].built || this.lists[i].needsRewrite)
+ this.lists[i]._writeList();
+
+ if (!this.lists[i].shown || this.lists[i].needsUpdate)
+ this.lists[i]._showList();
+
+ xbcl_setImage(this.lists[i], item, this.expandedImageURL );
+ }
+ else
+ xbcl_setImage(this.lists[i], item, this.collapsedImageURL );
+
+ if (this.lists[i].built)
+ currTop = this.lists[i]._updateList(this.visible && pVis, x, currTop);
+ }
+ }
+ return currTop;
+}
+
+function xbcl_updateParent( pid, l )
+{
+ var i;
+
+ if ( !l )
+ l = 0;
+
+ this.pid = pid;
+ this.l = l;
+
+ for ( i = 0; i < this.types.length; i++ )
+ {
+ if ( this.types[ i ] == 'list' )
+ {
+ this.lists[ i ]._updateParent( pid, l + 1 );
+ }
+ }
+}
+
+function xbcl_expand(i)
+{
+ xbcl_mLists[i].visible = !xbcl_mLists[i].visible;
+
+ if (xbcl_mLists[i].onexpand != null)
+ xbcl_mLists[i].onexpand(xbcl_mLists[i].id);
+
+ xbcl_mLists[xbcl_mLists[i].pid].rebuild();
+
+ if (xbcl_mLists[i].postexpand != null)
+ xbcl_mLists[i].postexpand(xbcl_mLists[i].id);
+}
+
+function xbcl_build(x, y)
+{
+ this._updateParent(this.id);
+ this._writeList();
+ this._showList();
+ this._updateList(true, x, y);
+ this.x = x;
+ this.y = y;
+}
+
+function xbcl_rebuild()
+{
+ this._updateList(true, this.x, this.y);
+}
+
+function xbcl_getNewItem()
+{
+ var newItem = null;
+
+ newItem = xbGetElementById('lItem' + xbcl_item_id);
+
+ if (!newItem)
+ {
+ if (document.all && !document.getElementById)
+ {
+ var parentElement = this.parentElement;
+ if (!parentElement)
+ parentElement = document.body;
+
+ parentElement.insertAdjacentHTML('beforeEnd', '<div id="lItem' + xbcl_item_id + '" style="position:absolute;"></div>');
+ newItem = xbGetElementById('lItem' + xbcl_item_id);
+ }
+ else if (document.layers)
+ {
+ if (this.parentElement)
+ newItem = new Layer(this.width, this.parentElement);
+ else
+ newItem = new Layer(this.width);
+ }
+ else if (document.createElement)
+ {
+ newItem = document.createElement('div');
+ newItem.id= 'lItem' + xbcl_item_id;
+ newItem.style.position = 'absolute';
+
+ if (this.parentElement)
+ this.parentElement.appendChild(newItem);
+ else
+ document.body.appendChild(newItem);
+ }
+ }
+
+ return newItem;
+}
+
+function xbcl_addItem(str, bgColor, item)
+{
+ if (!item)
+ item = this._getNewItem();
+
+ if (!item)
+ return;
+
+ if (bgColor)
+ item.oBgColor = bgColor;
+
+ this.items[this.items.length] = item;
+ this.types[this.types.length] = 'item';
+ this.strs[this.strs.length] = str;
+ ++xbcl_item_id;
+
+ if ( this.built )
+ {
+ this._writeItem( item, str, false );
+ xbcl_mLists[this.pid].rebuild();
+ if ( this.visible )
+ this._showList();
+ else
+ this.needsUpdate = true;
+ }
+
+ return item;
+}
+
+function xbcl_addList(list, str, bgColor, item)
+{
+ if (!item)
+ item = this._getNewItem();
+
+ if (!item)
+ return;
+
+ if (bgColor)
+ item.oBgColor = bgColor;
+
+ this.lists[this.items.length] = list;
+ this.items[this.items.length] = item;
+ this.types[this.types.length] = 'list';
+ this.strs[this.strs.length] = str;
+ ++xbcl_item_id;
+
+ list.parentList = this;
+
+ list.pid = this.pid;
+ list.l = this.l + 1;
+
+ if ( this.built )
+ {
+ this._writeItem( item, str, true, list );
+ xbcl_mLists[ this.pid ].rebuild();
+ if ( this.visible )
+ this._showList();
+ else
+ this.needsUpdate = true;
+ }
+
+ return item;
+}
+
+List.prototype.setIndent = xbcl_setIndent;
+List.prototype.getIndent = xbcl_getIndent;
+List.prototype.addItem = xbcl_addItem;
+List.prototype.addList = xbcl_addList;
+List.prototype.build = xbcl_build;
+List.prototype.rebuild = xbcl_rebuild;
+List.prototype.setFont = xbcl_SetFont;
+List.prototype.getFont = xbcl_GetFont;
+List.prototype.getHeight = xbcl_getHeight;
+
+List.prototype._writeList = xbcl_writeList;
+List.prototype._getNewItem = xbcl_getNewItem;
+
+if ( document.getElementById && document.createElement )
+ List.prototype._writeItem = xbcl_writeItemDOMHTML;
+else
+ List.prototype._writeItem = xbcl_writeItem;
+
+List.prototype._showList = xbcl_showList;
+List.prototype._updateList = xbcl_updateList;
+List.prototype._updateParent = xbcl_updateParent;
+
+List.prototype.onexpand = null;
+List.prototype.postexpand = null;
+List.prototype.lists = null; // sublists
+List.prototype.items = null; // layers
+List.prototype.types = null; // type
+List.prototype.strs = null; // content
+List.prototype.x = 0;
+List.prototype.y = 0;
+List.prototype.visible = false;
+List.prototype.id = -1;
+List.prototype.i = 18;
+List.prototype.space = true;
+List.prototype.pid = 0;
+List.prototype.fontIntro = '';
+List.prototype.fontOutro = '';
+List.prototype.width = 350;
+List.prototype.height = 22;
+List.prototype.built = false;
+List.prototype.shown = false;
+List.prototype.needsUpdate = false;
+List.prototype.needsRewrite = false;
+List.prototype.l = 0;
+List.prototype.bgColor = null;
+List.prototype.parentList = null;
+List.prototype.parentElement = null;
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbDOM.js b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbDOM.js
new file mode 100644
index 0000000..39cc8bf
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbDOM.js
@@ -0,0 +1,374 @@
+/*
+ * xbDOM.js
+ * $Revision: 1.2 $ $Date: 2003/02/07 16:04:18 $
+ */
+
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Netscape code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 2001
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s): Bob Clary <bclary@netscape.com>
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+function xbToInt(s)
+{
+ var i = parseInt(s, 10);
+ if (isNaN(i))
+ i = 0;
+
+ return i;
+}
+
+function xbGetWindowWidth(windowRef)
+{
+ var width = 0;
+
+ if (!windowRef)
+ {
+ windowRef = window;
+ }
+
+ if (typeof(windowRef.innerWidth) == 'number')
+ {
+ width = windowRef.innerWidth;
+ }
+ else if (windowRef.document.body && typeof(windowRef.document.body.clientWidth) == 'number')
+ {
+ width = windowRef.document.body.clientWidth;
+ }
+
+ return width;
+}
+
+function xbGetWindowHeight(windowRef)
+{
+ var height = 0;
+
+ if (!windowRef)
+ {
+ windowRef = window;
+ }
+
+ if (typeof(windowRef.innerWidth) == 'number')
+ {
+ height = windowRef.innerHeight;
+ }
+ else if (windowRef.document.body && typeof(windowRef.document.body.clientWidth) == 'number')
+ {
+ height = windowRef.document.body.clientHeight;
+ }
+ return height;
+}
+
+function xbGetElementsByNameAndType(name, type, windowRef)
+{
+ if (!windowRef)
+ windowRef = window;
+
+ var elmlist = new Array();
+
+ xbFindElementsByNameAndType(windowRef.document, name, type, elmlist);
+
+ return elmlist;
+}
+
+function xbFindElementsByNameAndType(doc, name, type, elmlist)
+{
+ var i;
+ var subdoc;
+
+ for (i = 0; i < doc[type].length; ++i)
+ {
+ if (doc[type][i].name && name == doc[type][i].name)
+ {
+ elmlist[elmlist.length] = doc[type][i];
+ }
+ }
+
+ if (doc.layers)
+ {
+ for (i = 0; i < doc.layers.length; ++i)
+ {
+ subdoc = doc.layers[i].document;
+ xbFindElementsByNameAndType(subdoc, name, type, elmlist);
+ }
+ }
+}
+
+if (document.layers)
+{
+ nav4FindLayer =
+ function (doc, id)
+ {
+ var i;
+ var subdoc;
+ var obj;
+
+ for (i = 0; i < doc.layers.length; ++i)
+ {
+ if (doc.layers[i].id && id == doc.layers[i].id)
+ return doc.layers[i];
+
+ subdoc = doc.layers[i].document;
+ obj = nav4FindLayer(subdoc, id);
+ if (obj != null)
+ return obj;
+ }
+ return null;
+ }
+
+ nav4FindElementsByName =
+ function (doc, name, elmlist)
+ {
+ var i;
+ var j;
+ var subdoc;
+
+ for (i = 0; i < doc.images.length; ++i)
+ {
+ if (doc.images[i].name && name == doc.images[i].name)
+ {
+ elmlist[elmlist.length] = doc.images[i];
+ }
+ }
+
+ for (i = 0; i < doc.forms.length; ++i)
+ {
+ for (j = 0; j < doc.forms[i].elements.length; j++)
+ {
+ if (doc.forms[i].elements[j].name && name == doc.forms[i].elements[j].name)
+ {
+ elmlist[elmlist.length] = doc.forms[i].elements[j];
+ }
+ }
+
+ if (doc.forms[i].name && name == doc.forms[i].name)
+ {
+ elmlist[elmlist.length] = doc.forms[i];
+ }
+ }
+
+ for (i = 0; i < doc.anchors.length; ++i)
+ {
+ if (doc.anchors[i].name && name == doc.anchors[i].name)
+ {
+ elmlist[elmlist.length] = doc.anchors[i];
+ }
+ }
+
+ for (i = 0; i < doc.links.length; ++i)
+ {
+ if (doc.links[i].name && name == doc.links[i].name)
+ {
+ elmlist[elmlist.length] = doc.links[i];
+ }
+ }
+
+ for (i = 0; i < doc.applets.length; ++i)
+ {
+ if (doc.applets[i].name && name == doc.applets[i].name)
+ {
+ elmlist[elmlist.length] = doc.applets[i];
+ }
+ }
+
+ for (i = 0; i < doc.embeds.length; ++i)
+ {
+ if (doc.embeds[i].name && name == doc.embeds[i].name)
+ {
+ elmlist[elmlist.length] = doc.embeds[i];
+ }
+ }
+
+ for (i = 0; i < doc.layers.length; ++i)
+ {
+ if (doc.layers[i].name && name == doc.layers[i].name)
+ {
+ elmlist[elmlist.length] = doc.layers[i];
+ }
+
+ subdoc = doc.layers[i].document;
+ nav4FindElementsByName(subdoc, name, elmlist);
+ }
+ }
+
+ xbGetElementById = function (id, windowRef)
+ {
+ if (!windowRef)
+ windowRef = window;
+
+ return nav4FindLayer(windowRef.document, id);
+ };
+
+ xbGetElementsByName = function (name, windowRef)
+ {
+ if (!windowRef)
+ windowRef = window;
+
+ var elmlist = new Array();
+
+ nav4FindElementsByName(windowRef.document, name, elmlist);
+
+ return elmlist;
+ };
+
+}
+else if (document.all)
+{
+ xbGetElementById =
+ function (id, windowRef)
+ {
+ if (!windowRef)
+ {
+ windowRef = window;
+ }
+ var elm = windowRef.document.all[id];
+ if (!elm)
+ {
+ elm = null;
+ }
+ return elm;
+ };
+
+ xbGetElementsByName = function (name, windowRef)
+ {
+ if (!windowRef)
+ windowRef = window;
+
+ var i;
+ var idnamelist = windowRef.document.all[name];
+ var elmlist = new Array();
+
+ if (!idnamelist.length || idnamelist.name == name)
+ {
+ if (idnamelist)
+ elmlist[elmlist.length] = idnamelist;
+ }
+ else
+ {
+ for (i = 0; i < idnamelist.length; i++)
+ {
+ if (idnamelist[i].name == name)
+ elmlist[elmlist.length] = idnamelist[i];
+ }
+ }
+
+ return elmlist;
+ }
+
+}
+else if (document.getElementById)
+{
+ xbGetElementById =
+ function (id, windowRef)
+ {
+ if (!windowRef)
+ {
+ windowRef = window;
+ }
+ return windowRef.document.getElementById(id);
+ };
+
+ xbGetElementsByName =
+ function (name, windowRef)
+ {
+ if (!windowRef)
+ {
+ windowRef = window;
+ }
+ return windowRef.document.getElementsByName(name);
+ };
+}
+else
+{
+ xbGetElementById =
+ function (id, windowRef)
+ {
+ return null;
+ };
+
+ xbGetElementsByName =
+ function (name, windowRef)
+ {
+ return new Array();
+ };
+}
+
+function xbGetPageScrollX(windowRef)
+{
+ if (!windowRef)
+ {
+ windowRef = window;
+ }
+
+ if (typeof(windowRef.pageXOffset) == 'number')
+ {
+ return windowRef.pageXOffset;
+ }
+
+ if (typeof(windowRef.document.body && windowRef.document.body.scrollLeft) == 'number')
+ {
+ return windowRef.document.body.scrollLeft;
+ }
+
+ return 0;
+}
+
+function xbGetPageScrollY(windowRef)
+{
+ if (!windowRef)
+ {
+ windowRef = window;
+ }
+
+ if (typeof(windowRef.pageYOffset) == 'number')
+ {
+ return windowRef.pageYOffset;
+ }
+
+ if (typeof(windowRef.document.body && windowRef.document.body.scrollTop) == 'number')
+ {
+ return windowRef.document.body.scrollTop;
+ }
+
+ return 0;
+}
+
+if (document.layers)
+{
+ xbSetInnerHTML =
+ function (element, str)
+ {
+ element.document.write(str);
+ element.document.close();
+ };
+}
+else
+{
+ xbSetInnerHTML = function (element, str)
+ {
+ if (typeof(element.innerHTML) != 'undefined')
+ {
+ element.innerHTML = str;
+ }
+ };
+}
+
+// eof: xbDOM.js
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbDebug.js b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbDebug.js
new file mode 100644
index 0000000..48fd010
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbDebug.js
@@ -0,0 +1,311 @@
+/*
+ * xbDebug.js
+ * $Revision: 1.2 $ $Date: 2003/02/07 16:04:19 $
+ */
+
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Netscape code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 2001
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s): Bob Clary <bclary@netscape.com>
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+/*
+ChangeLog:
+
+2002-02-25: bclary - modified xbDebugTraceOject to make sure
+ that original versions of wrapped functions were not
+ rewrapped. This had caused an infinite loop in IE.
+
+2002-02-07: bclary - modified xbDebug.prototype.close to not null
+ the debug window reference. This can cause problems with
+ Internet Explorer if the page is refreshed. These issues will
+ be addressed at a later date.
+*/
+
+function xbDebug()
+{
+ this.on = false;
+ this.stack = new Array();
+ this.debugwindow = null;
+ this.execprofile = new Object();
+}
+
+xbDebug.prototype.push = function ()
+{
+ this.stack[this.stack.length] = this.on;
+ this.on = true;
+}
+
+xbDebug.prototype.pop = function ()
+{
+ this.on = this.stack[this.stack.length - 1];
+ --this.stack.length;
+}
+
+xbDebug.prototype.open = function ()
+{
+ if (this.debugwindow && !this.debugwindow.closed)
+ this.close();
+
+ this.debugwindow = window.open('about:blank', 'DEBUGWINDOW', 'height=400,width=600,resizable=yes,scrollbars=yes');
+ this.debugwindow.moveTo(0,0);
+ window.focus();
+
+ this.debugwindow.document.write('<html><head><title>xbDebug Window</title></head><body><h3>Javascript Debug Window</h3></body></html>');
+}
+
+xbDebug.prototype.close = function ()
+{
+ if (!this.debugwindow)
+ return;
+
+ if (!this.debugwindow.closed)
+ this.debugwindow.close();
+
+ // bc 2002-02-07, other windows may still hold a reference to this: this.debugwindow = null;
+}
+
+xbDebug.prototype.dump = function (msg)
+{
+ if (!this.on)
+ return;
+
+ if (!this.debugwindow || this.debugwindow.closed)
+ this.open();
+
+ this.debugwindow.document.write(msg + '<br>');
+
+ return;
+}
+
+var xbDEBUG = new xbDebug();
+
+window.onunload = function () { xbDEBUG.close(); }
+
+function xbDebugGetFunctionName(funcref)
+{
+
+ if (!funcref)
+ {
+ return '';
+ }
+
+ if (funcref.name)
+ return funcref.name;
+
+ var name = funcref + '';
+ name = name.substring(name.indexOf(' ') + 1, name.indexOf('('));
+ funcref.name = name;
+
+ if (!name) alert('name not defined');
+ return name;
+}
+
+
+// emulate functionref.apply for IE mac and IE win < 5.5
+function xbDebugApplyFunction(funcname, funcref, thisref, argumentsref)
+{
+ var rv;
+
+ if (!funcref)
+ {
+ alert('xbDebugApplyFunction: funcref is null');
+ }
+
+ if (typeof(funcref.apply) != 'undefined')
+ return funcref.apply(thisref, argumentsref);
+
+ var applyexpr = 'thisref.xbDebug_orig_' + funcname + '(';
+ var i;
+
+ for (i = 0; i < argumentsref.length; i++)
+ {
+ applyexpr += 'argumentsref[' + i + '],';
+ }
+
+ if (argumentsref.length > 0)
+ {
+ applyexpr = applyexpr.substring(0, applyexpr.length - 1);
+ }
+
+ applyexpr += ')';
+
+ return eval(applyexpr);
+}
+
+function xbDebugCreateFunctionWrapper(scopename, funcname, precall, postcall)
+{
+ var wrappedfunc;
+ var scopeobject = eval(scopename);
+ var funcref = scopeobject[funcname];
+
+ scopeobject['xbDebug_orig_' + funcname] = funcref;
+
+ wrappedfunc = function ()
+ {
+ var rv;
+
+ precall(scopename, funcname, arguments);
+ rv = xbDebugApplyFunction(funcname, funcref, scopeobject, arguments);
+ postcall(scopename, funcname, arguments, rv);
+ return rv;
+ };
+
+ if (typeof(funcref.constructor) != 'undefined')
+ wrappedfunc.constructor = funcref.constuctor;
+
+ if (typeof(funcref.prototype) != 'undefined')
+ wrappedfunc.prototype = funcref.prototype;
+
+ scopeobject[funcname] = wrappedfunc;
+}
+
+function xbDebugCreateMethodWrapper(contextname, classname, methodname, precall, postcall)
+{
+ var context = eval(contextname);
+ var methodref = context[classname].prototype[methodname];
+
+ context[classname].prototype['xbDebug_orig_' + methodname] = methodref;
+
+ var wrappedmethod = function ()
+ {
+ var rv;
+ // eval 'this' at method run time to pick up reference to the object's instance
+ var thisref = eval('this');
+ // eval 'arguments' at method run time to pick up method's arguments
+ var argsref = arguments;
+
+ precall(contextname + '.' + classname, methodname, argsref);
+ rv = xbDebugApplyFunction(methodname, methodref, thisref, argsref);
+ postcall(contextname + '.' + classname, methodname, argsref, rv);
+ return rv;
+ };
+
+ return wrappedmethod;
+}
+
+function xbDebugPersistToString(obj)
+{
+ var s = '';
+
+ if (obj == null)
+ return 'null';
+
+ switch(typeof(obj))
+ {
+ case 'number':
+ return obj;
+ case 'string':
+ return '"' + obj + '"';
+ case 'undefined':
+ return 'undefined';
+ case 'boolean':
+ return obj + '';
+ }
+
+ if (obj.constructor)
+ return '[' + xbDebugGetFunctionName(obj.constructor) + ']';
+
+ return null;
+}
+
+function xbDebugTraceBefore(scopename, funcname, funcarguments)
+{
+ var i;
+ var s = '';
+ var execprofile = xbDEBUG.execprofile[scopename + '.' + funcname];
+ if (!execprofile)
+ execprofile = xbDEBUG.execprofile[scopename + '.' + funcname] = { started: 0, time: 0, count: 0 };
+
+ for (i = 0; i < funcarguments.length; i++)
+ {
+ s += xbDebugPersistToString(funcarguments[i]);
+ if (i < funcarguments.length - 1)
+ s += ', ';
+ }
+
+ xbDEBUG.dump('enter ' + scopename + '.' + funcname + '(' + s + ')');
+ execprofile.started = (new Date()).getTime();
+}
+
+function xbDebugTraceAfter(scopename, funcname, funcarguments, rv)
+{
+ var i;
+ var s = '';
+ var execprofile = xbDEBUG.execprofile[scopename + '.' + funcname];
+ if (!execprofile)
+ xbDEBUG.dump('xbDebugTraceAfter: execprofile not created for ' + scopename + '.' + funcname);
+ else if (execprofile.started == 0)
+ xbDEBUG.dump('xbDebugTraceAfter: execprofile.started == 0 for ' + scopename + '.' + funcname);
+ else
+ {
+ execprofile.time += (new Date()).getTime() - execprofile.started;
+ execprofile.count++;
+ execprofile.started = 0;
+ }
+
+ for (i = 0; i < funcarguments.length; i++)
+ {
+ s += xbDebugPersistToString(funcarguments[i]);
+ if (i < funcarguments.length - 1)
+ s += ', ';
+ }
+
+ xbDEBUG.dump('exit ' + scopename + '.' + funcname + '(' + s + ')==' + xbDebugPersistToString(rv));
+}
+
+function xbDebugTraceFunction(scopename, funcname)
+{
+ xbDebugCreateFunctionWrapper(scopename, funcname, xbDebugTraceBefore, xbDebugTraceAfter);
+}
+
+function xbDebugTraceObject(contextname, classname)
+{
+ var classref = eval(contextname + '.' + classname);
+ var p;
+ var sp;
+
+ if (!classref || !classref.prototype)
+ return;
+
+ for (p in classref.prototype)
+ {
+ sp = p + '';
+ if (typeof(classref.prototype[sp]) == 'function' && (sp).indexOf('xbDebug_orig') == -1)
+ {
+ classref.prototype[sp] = xbDebugCreateMethodWrapper(contextname, classname, sp, xbDebugTraceBefore, xbDebugTraceAfter);
+ }
+ }
+}
+
+function xbDebugDumpProfile()
+{
+ var p;
+ var execprofile;
+ var avg;
+
+ for (p in xbDEBUG.execprofile)
+ {
+ execprofile = xbDEBUG.execprofile[p];
+ avg = Math.round ( 100 * execprofile.time/execprofile.count) /100;
+ xbDEBUG.dump('Execution profile ' + p + ' called ' + execprofile.count + ' times. Total time=' + execprofile.time + 'ms. Avg Time=' + avg + 'ms.');
+ }
+}
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbLibrary.js b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbLibrary.js
new file mode 100644
index 0000000..9bbfd6b
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbLibrary.js
@@ -0,0 +1,80 @@
+/*
+ * xbLibrary.js
+ * $Revision: 1.3 $ $Date: 2003/03/17 03:44:20 $
+ */
+
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Bob Clary code.
+ *
+ * The Initial Developer of the Original Code is
+ * Bob Clary.
+ * Portions created by the Initial Developer are Copyright (C) 2000
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s): Bob Clary <bc@bclary.com>
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+if (!document.getElementById || navigator.userAgent.indexOf('Opera') != -1)
+{
+ // assign error handler for downlevel browsers
+ // Note until Opera improves it's overall support
+ // for JavaScript and the DOM, it must be considered downlevel
+
+ window.onerror = defaultOnError;
+
+ function defaultOnError(msg, url, line)
+ {
+ // handle bug in NS6.1, N6.2
+ // where an Event is passed to error handlers
+ if (typeof(msg) != 'string')
+ {
+ msg = 'unknown error';
+ }
+ if (typeof(url) != 'string')
+ {
+ url = document.location;
+ }
+
+ alert('An error has occurred at ' + url + ', line ' + line + ': ' + msg);
+ }
+}
+
+function xbLibrary(path)
+{
+ if (path.charAt(path.length-1) == '/')
+ {
+ path = path.substr(0, path.length-1)
+ }
+ this.path = path;
+}
+
+// dynamically loaded scripts
+//
+// it is an error to reference anything from the dynamically loaded file inside the
+// same script block. This means that a file can not check its dependencies and
+// load the files for it's own use. someone else must do this.
+
+xbLibrary.prototype.loadScript =
+function (scriptName)
+{
+ document.write('<script language="javascript" src="' + this.path + '/' + scriptName + '"><\/script>');
+};
+
+// default xbLibrary
+
+xblibrary = new xbLibrary('./');
+
+
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbStyle-css.js b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbStyle-css.js
new file mode 100644
index 0000000..f5b8467
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbStyle-css.js
@@ -0,0 +1,791 @@
+/*
+ * xbStyle-css.js
+ * $Revision: 1.2 $ $Date: 2003/02/07 16:04:21 $
+ *
+ */
+
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Netscape code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 2001
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s): Bob Clary <bclary@netscape.com>
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+// xbStyle.getClip()
+
+function cssStyleGetClip()
+{
+ var clip = this.getEffectiveValue('clip');
+
+ // hack opera
+ if (clip == 'rect()')
+ clip = '';
+
+ if (clip == '' || clip == 'auto')
+ {
+ clip = 'rect(0px, ' + this.getWidth() + 'px, ' + this.getHeight() + 'px, 0px)';
+ }
+ else
+ {
+ clip = clip.replace(/px /g, 'px, ');
+ }
+
+ return clip;
+}
+
+// xbStyle.setClip()
+
+function cssStyleSetClip(sClipString)
+{
+ this.styleObj.clip = sClipString;
+}
+
+// xbStyle.getClipTop()
+
+function cssStyleGetClipTop()
+{
+ var clip = this.getClip();
+ var rect = new xbClipRect(clip);
+ return rect.top;
+}
+
+// xbStyle.setClipTop()
+
+function cssStyleSetClipTop(top)
+{
+ var clip = this.getClip();
+ var rect = new xbClipRect(clip);
+ rect.top = top;
+ this.styleObj.clip = rect.toString();
+}
+
+// xbStyle.getClipRight()
+
+function cssStyleGetClipRight()
+{
+ var clip = this.getClip();
+ var rect = new xbClipRect(clip);
+ return rect.right;
+}
+
+// xbStyle.setClipRight()
+
+function cssStyleSetClipRight(right)
+{
+ var clip = this.getClip();
+ var rect = new xbClipRect(clip);
+ rect.right = right;
+ this.styleObj.clip = rect.toString();
+}
+
+// xbStyle.getClipBottom()
+
+function cssStyleGetClipBottom()
+{
+ var clip = this.getClip();
+ var rect = new xbClipRect(clip);
+ return rect.bottom;
+}
+
+// xbStyle.setClipBottom()
+
+function cssStyleSetClipBottom(bottom)
+{
+ var clip = this.getClip();
+ var rect = new xbClipRect(clip);
+ rect.bottom = bottom;
+ this.styleObj.clip = rect.toString();
+}
+
+// xbStyle.getClipLeft()
+
+function cssStyleGetClipLeft()
+{
+ var clip = this.getClip();
+ var rect = new xbClipRect(clip);
+ return rect.left;
+}
+
+// xbStyle.setClipLeft()
+
+function cssStyleSetClipLeft(left)
+{
+ var clip = this.getClip();
+ var rect = new xbClipRect(clip);
+ rect.left = left;
+ this.styleObj.clip = rect.toString();
+}
+
+// xbStyle.getClipWidth()
+
+function cssStyleGetClipWidth()
+{
+ var clip = this.getClip();
+ var rect = new xbClipRect(clip);
+ return rect.getWidth();
+}
+
+// xbStyle.setClipWidth()
+
+function cssStyleSetClipWidth(width)
+{
+ var clip = this.getClip();
+ var rect = new xbClipRect(clip);
+ rect.setWidth(width);
+ this.styleObj.clip = rect.toString();
+}
+
+// xbStyle.getClipHeight()
+
+function cssStyleGetClipHeight()
+{
+ var clip = this.getClip();
+ var rect = new xbClipRect(clip);
+ return rect.getHeight();
+}
+
+// xbStyle.setClipHeight()
+
+function cssStyleSetClipHeight(height)
+{
+ var clip = this.getClip();
+ var rect = new xbClipRect(clip);
+ rect.setHeight(height);
+ this.styleObj.clip = rect.toString();
+}
+
+// the CSS attributes left,top are for absolutely positioned elements
+// measured relative to the containing element. for relatively positioned
+// elements, left,top are measured from the element's normal inline position.
+// getLeft(), setLeft() operate on this type of coordinate.
+//
+// to allow dynamic positioning the getOffsetXXX and setOffsetXXX methods are
+// defined to return and set the position of either an absolutely or relatively
+// positioned element relative to the containing element.
+//
+//
+
+// xbStyle.getLeft()
+
+function cssStyleGetLeft()
+{
+ var left = this.getEffectiveValue('left');
+ if (typeof(left) == 'number')
+ return left;
+
+ if (left != '' && left.indexOf('px') == -1)
+ {
+ xbDEBUG.dump('xbStyle.getLeft: Element ID=' + this.object.id + ' does not use pixels as units. left=' + left + ' Click Ok to continue, Cancel to Abort');
+ return 0;
+ }
+
+ if (top == 'auto' && this.object && typeof(this.object.offsetTop) == 'number')
+ {
+ left = this.object.offsetTop + 'px';
+ }
+
+ if (left == '')
+ left = '0px';
+
+ return xbToInt(left);
+}
+
+// xbStyle.setLeft()
+
+function cssStyleSetLeft(left)
+{
+ if (typeof(this.styleObj.left) == 'number')
+ this.styleObj.left = left;
+ else
+ this.styleObj.left = left + 'px';
+}
+
+// xbStyle.getTop()
+
+function cssStyleGetTop()
+{
+ var top = this.getEffectiveValue('top');
+ if (typeof(top) == 'number')
+ return top;
+
+ if (top != '' && top.indexOf('px') == -1)
+ {
+ xbDEBUG.dump('xbStyle.getTop: Element ID=' + this.object.id + ' does not use pixels as units. top=' + top + ' Click Ok to continue, Cancel to Abort');
+ return 0;
+ }
+
+ if (top == 'auto' && this.object && typeof(this.object.offsetTop) == 'number')
+ {
+ top = this.object.offsetTop + 'px';
+ }
+
+ if (top == '')
+ top = '0px';
+
+ return xbToInt(top);
+}
+
+// xbStyle.setTop()
+
+function cssStyleSetTop(top)
+{
+ if (typeof(this.styleObj.top) == 'number')
+ this.styleObj.top = top;
+ else
+ this.styleObj.top = top + 'px';
+}
+
+// xbStyle.getPageX()
+
+function cssStyleGetPageX()
+{
+ var x = 0;
+ var elm = this.object;
+ var elmstyle;
+ var position;
+
+ //xxxHack: Due to limitations in Gecko's (0.9.6) ability to determine the
+ // effective position attribute , attempt to use offsetXXX
+
+ if (typeof(elm.offsetLeft) == 'number')
+ {
+ while (elm)
+ {
+ x += elm.offsetLeft;
+ elm = elm.offsetParent;
+ }
+ }
+ else
+ {
+ while (elm)
+ {
+ if (elm.style)
+ {
+ elmstyle = new xbStyle(elm);
+ position = elmstyle.getEffectiveValue('position');
+ if (position != '' && position != 'static')
+ x += elmstyle.getLeft();
+ }
+ elm = elm.parentNode;
+ }
+ }
+
+ return x;
+}
+
+// xbStyle.setPageX()
+
+function cssStyleSetPageX(x)
+{
+ var xParent = 0;
+ var elm = this.object.parentNode;
+ var elmstyle;
+ var position;
+
+ //xxxHack: Due to limitations in Gecko's (0.9.6) ability to determine the
+ // effective position attribute , attempt to use offsetXXX
+
+ if (elm && typeof(elm.offsetLeft) == 'number')
+ {
+ while (elm)
+ {
+ xParent += elm.offsetLeft;
+ elm = elm.offsetParent;
+ }
+ }
+ else
+ {
+ while (elm)
+ {
+ if (elm.style)
+ {
+ elmstyle = new xbStyle(elm);
+ position = elmstyle.getEffectiveValue('position');
+ if (position != '' && position != 'static')
+ xParent += elmstyle.getLeft();
+ }
+ elm = elm.parentNode;
+ }
+ }
+
+ x -= xParent;
+
+ this.setLeft(x);
+}
+
+// xbStyle.getPageY()
+
+function cssStyleGetPageY()
+{
+ var y = 0;
+ var elm = this.object;
+ var elmstyle;
+ var position;
+
+ //xxxHack: Due to limitations in Gecko's (0.9.6) ability to determine the
+ // effective position attribute , attempt to use offsetXXX
+
+ if (typeof(elm.offsetTop) == 'number')
+ {
+ while (elm)
+ {
+ y += elm.offsetTop;
+ elm = elm.offsetParent;
+ }
+ }
+ else
+ {
+ while (elm)
+ {
+ if (elm.style)
+ {
+ elmstyle = new xbStyle(elm);
+ position = elmstyle.getEffectiveValue('position');
+ if (position != '' && position != 'static')
+ y += elmstyle.getTop();
+ }
+ elm = elm.parentNode;
+ }
+ }
+
+ return y;
+}
+
+// xbStyle.setPageY()
+
+function cssStyleSetPageY(y)
+{
+ var yParent = 0;
+ var elm = this.object.parentNode;
+ var elmstyle;
+ var position;
+
+ //xxxHack: Due to limitations in Gecko's (0.9.6) ability to determine the
+ // effective position attribute , attempt to use offsetXXX
+
+ if (elm && typeof(elm.offsetTop) == 'number')
+ {
+ while (elm)
+ {
+ yParent += elm.offsetTop;
+ elm = elm.offsetParent;
+ }
+ }
+ else
+ {
+ while (elm)
+ {
+ if (elm.style)
+ {
+ elmstyle = new xbStyle(elm);
+ position = elmstyle.getEffectiveValue('position');
+ if (position != '' && position != 'static')
+ yParent += elmstyle.getTop();
+ }
+ elm = elm.parentNode;
+ }
+ }
+
+ y -= yParent;
+
+ this.setTop(y);
+}
+
+// xbStyle.getHeight()
+
+function cssStyleGetHeight()
+{
+ var display = this.getEffectiveValue('display');
+ var height = this.getEffectiveValue('height');
+
+ if (typeof(height) == 'number')
+ {
+ // Opera
+ return height;
+ }
+
+ if (height == '' || height == 'auto' || height.indexOf('%') != -1)
+ {
+ if (typeof(this.object.offsetHeight) == 'number')
+ {
+ height = this.object.offsetHeight + 'px';
+ }
+ else if (typeof(this.object.scrollHeight) == 'number')
+ {
+ height = this.object.scrollHeight + 'px';
+ }
+ }
+
+ if (height.indexOf('px') == -1)
+ {
+ xbDEBUG.dump('xbStyle.getHeight: Element ID=' + this.object.id + ' does not use pixels as units. height=' + height + ' Click Ok to continue, Cancel to Abort');
+ return 0;
+ }
+
+ height = xbToInt(height);
+
+ return height;
+}
+
+// xbStyle.setHeight()
+
+function cssStyleSetHeight(height)
+{
+ if (typeof(this.styleObj.height) == 'number')
+ this.styleObj.height = height;
+ else
+ this.styleObj.height = height + 'px';
+}
+
+// xbStyle.getWidth()
+
+function cssStyleGetWidth()
+{
+ var display = this.getEffectiveValue('display');
+ var width = this.getEffectiveValue('width');
+
+ if (typeof(width) == 'number')
+ {
+ // note Opera 6 has a bug in width and offsetWidth where
+ // it returns the page width. Use clientWidth instead.
+ if (navigator.userAgent.indexOf('Opera') != -1)
+ return this.object.clientWidth;
+ else
+ return width;
+ }
+
+ if (width == '' || width == 'auto' || width.indexOf('%') != -1)
+ {
+ if (typeof(this.object.offsetWidth) == 'number')
+ {
+ width = this.object.offsetWidth + 'px';
+ }
+ else if (typeof(this.object.scrollHeight) == 'number')
+ {
+ width = this.object.scrollWidth + 'px';
+ }
+ }
+
+ if (width.indexOf('px') == -1)
+ {
+ xbDEBUG.dump('xbStyle.getWidth: Element ID=' + this.object.id + ' does not use pixels as units. width=' + width + ' Click Ok to continue, Cancel to Abort');
+ return 0;
+ }
+
+ width = xbToInt(width);
+
+ return width;
+}
+
+// xbStyle.setWidth()
+
+function cssStyleSetWidth(width)
+{
+ if (typeof(this.styleObj.width) == 'number')
+ this.styleObj.width = width;
+ else
+ this.styleObj.width = width + 'px';
+}
+
+// xbStyle.getVisibility()
+
+function cssStyleGetVisibility()
+{
+ return this.getEffectiveValue('visibility');
+}
+
+// xbStyle.setVisibility()
+
+function cssStyleSetVisibility(visibility)
+{
+ this.styleObj.visibility = visibility;
+}
+
+// xbStyle.getzIndex()
+
+function cssStyleGetzIndex()
+{
+ return xbToInt(this.getEffectiveValue('zIndex'));
+}
+
+// xbStyle.setzIndex()
+
+function cssStyleSetzIndex(zIndex)
+{
+ this.styleObj.zIndex = zIndex;
+}
+
+// xbStyle.getBackgroundColor()
+
+function cssStyleGetBackgroundColor()
+{
+ return this.getEffectiveValue('backgroundColor');
+}
+
+// xbStyle.setBackgroundColor()
+
+function cssStyleSetBackgroundColor(color)
+{
+ this.styleObj.backgroundColor = color;
+}
+
+// xbStyle.getColor()
+
+function cssStyleGetColor()
+{
+ return this.getEffectiveValue('color');
+}
+
+// xbStyle.setColor()
+
+function cssStyleSetColor(color)
+{
+ this.styleObj.color = color;
+}
+
+// xbStyle.moveAbove()
+
+function xbStyleMoveAbove(cont)
+{
+ this.setzIndex(cont.getzIndex()+1);
+}
+
+// xbStyle.moveBelow()
+
+function xbStyleMoveBelow(cont)
+{
+ var zindex = cont.getzIndex() - 1;
+
+ this.setzIndex(zindex);
+}
+
+// xbStyle.moveBy()
+
+function xbStyleMoveBy(deltaX, deltaY)
+{
+ this.moveTo(this.getLeft() + deltaX, this.getTop() + deltaY);
+}
+
+// xbStyle.moveTo()
+
+function xbStyleMoveTo(x, y)
+{
+ this.setLeft(x);
+ this.setTop(y);
+}
+
+// xbStyle.moveToAbsolute()
+
+function xbStyleMoveToAbsolute(x, y)
+{
+ this.setPageX(x);
+ this.setPageY(y);
+}
+
+// xbStyle.resizeBy()
+
+function xbStyleResizeBy(deltaX, deltaY)
+{
+ this.setWidth( this.getWidth() + deltaX );
+ this.setHeight( this.getHeight() + deltaY );
+}
+
+// xbStyle.resizeTo()
+
+function xbStyleResizeTo(x, y)
+{
+ this.setWidth(x);
+ this.setHeight(y);
+}
+
+// xbStyle.setInnerHTML()
+
+function xbSetInnerHTML(str)
+{
+ if (typeof(this.object.innerHTML) != 'undefined')
+ this.object.innerHTML = str;
+}
+
+
+// Extensions to xbStyle that are not supported by Netscape Navigator 4
+// but that provide cross browser implementations of properties for
+// Mozilla, Gecko, Netscape 6.x and Opera
+
+// xbStyle.getBorderTopWidth()
+
+function cssStyleGetBorderTopWidth()
+{
+ return xbToInt(this.getEffectiveValue('borderTopWidth'));
+}
+
+// xbStyle.getBorderRightWidth()
+
+function cssStyleGetBorderRightWidth()
+{
+ return xbToInt(this.getEffectiveValue('borderRightWidth'));
+}
+
+// xbStyle.getBorderBottomWidth()
+
+function cssStyleGetBorderBottomWidth()
+{
+ return xbToInt(this.getEffectiveValue('borderBottomWidth'));
+}
+
+// xbStyle.getBorderLeftWidth()
+
+function cssStyleGetBorderLeftWidth()
+{
+ return xbToInt(this.getEffectiveValue('borderLeftWidth'));
+}
+
+// xbStyle.getMarginTop()
+
+function cssStyleGetMarginTop()
+{
+ return xbToInt(this.getEffectiveValue('marginTop'));
+}
+
+// xbStyle.getMarginRight()
+
+function cssStyleGetMarginRight()
+{
+ return xbToInt(this.getEffectiveValue('marginRight'));
+}
+
+// xbStyle.getMarginBottom()
+
+function cssStyleGetMarginBottom()
+{
+ return xbToInt(this.getEffectiveValue('marginBottom'));
+}
+
+// xbStyle.getMarginLeft()
+
+function cssStyleGetMarginLeft()
+{
+ return xbToInt(this.getEffectiveValue('marginLeft'));
+}
+
+// xbStyle.getPaddingTop()
+
+function cssStyleGetPaddingTop()
+{
+ return xbToInt(this.getEffectiveValue('paddingTop'));
+}
+
+// xbStyle.getPaddingRight()
+
+function cssStyleGetPaddingRight()
+{
+ return xbToInt(this.getEffectiveValue('paddingRight'));
+}
+
+// xbStyle.getPaddingBottom()
+
+function cssStyleGetPaddingBottom()
+{
+ return xbToInt(this.getEffectiveValue('paddingBottom'));
+}
+
+// xbStyle.getPaddingLeft()
+
+function cssStyleGetPaddingLeft()
+{
+ return xbToInt(this.getEffectiveValue('paddingLeft'));
+}
+
+// xbStyle.getClientWidth()
+
+function cssStyleGetClientWidth()
+{
+ return this.getWidth() + this.getPaddingLeft() + this.getPaddingRight();
+ /*
+ if (typeof(this.object.clientWidth) == 'number')
+ return this.object.clientWidth;
+
+ return null;
+ */
+}
+
+// xbStyle.getClientHeight()
+
+function cssStyleGetClientHeight()
+{
+ return this.getHeight() + this.getPaddingTop() + this.getPaddingBottom();
+ /*
+ if (typeof(this.object.clientHeight) == 'number')
+ return this.object.clientHeight;
+
+ return null;
+ */
+}
+
+xbStyle.prototype.getClip = cssStyleGetClip;
+xbStyle.prototype.setClip = cssStyleSetClip;
+xbStyle.prototype.getClipTop = cssStyleGetClipTop;
+xbStyle.prototype.setClipTop = cssStyleSetClipTop;
+xbStyle.prototype.getClipRight = cssStyleGetClipRight;
+xbStyle.prototype.setClipRight = cssStyleSetClipRight;
+xbStyle.prototype.getClipBottom = cssStyleGetClipBottom;
+xbStyle.prototype.setClipBottom = cssStyleSetClipBottom;
+xbStyle.prototype.getClipLeft = cssStyleGetClipLeft;
+xbStyle.prototype.setClipLeft = cssStyleSetClipLeft;
+xbStyle.prototype.getClipWidth = cssStyleGetClipWidth;
+xbStyle.prototype.setClipWidth = cssStyleSetClipWidth;
+xbStyle.prototype.getClipHeight = cssStyleGetClipHeight;
+xbStyle.prototype.setClipHeight = cssStyleSetClipHeight;
+xbStyle.prototype.getLeft = cssStyleGetLeft;
+xbStyle.prototype.setLeft = cssStyleSetLeft;
+xbStyle.prototype.getTop = cssStyleGetTop;
+xbStyle.prototype.setTop = cssStyleSetTop;
+xbStyle.prototype.getPageX = cssStyleGetPageX;
+xbStyle.prototype.setPageX = cssStyleSetPageX;
+xbStyle.prototype.getPageY = cssStyleGetPageY;
+xbStyle.prototype.setPageY = cssStyleSetPageY;
+xbStyle.prototype.getVisibility = cssStyleGetVisibility;
+xbStyle.prototype.setVisibility = cssStyleSetVisibility;
+xbStyle.prototype.getzIndex = cssStyleGetzIndex;
+xbStyle.prototype.setzIndex = cssStyleSetzIndex;
+xbStyle.prototype.getHeight = cssStyleGetHeight;
+xbStyle.prototype.setHeight = cssStyleSetHeight;
+xbStyle.prototype.getWidth = cssStyleGetWidth;
+xbStyle.prototype.setWidth = cssStyleSetWidth;
+xbStyle.prototype.getBackgroundColor = cssStyleGetBackgroundColor;
+xbStyle.prototype.setBackgroundColor = cssStyleSetBackgroundColor;
+xbStyle.prototype.getColor = cssStyleGetColor;
+xbStyle.prototype.setColor = cssStyleSetColor;
+xbStyle.prototype.setInnerHTML = xbSetInnerHTML;
+xbStyle.prototype.getBorderTopWidth = cssStyleGetBorderTopWidth;
+xbStyle.prototype.getBorderRightWidth = cssStyleGetBorderRightWidth;
+xbStyle.prototype.getBorderBottomWidth = cssStyleGetBorderBottomWidth;
+xbStyle.prototype.getBorderLeftWidth = cssStyleGetBorderLeftWidth;
+xbStyle.prototype.getMarginLeft = cssStyleGetMarginLeft;
+xbStyle.prototype.getMarginTop = cssStyleGetMarginTop;
+xbStyle.prototype.getMarginRight = cssStyleGetMarginRight;
+xbStyle.prototype.getMarginBottom = cssStyleGetMarginBottom;
+xbStyle.prototype.getMarginLeft = cssStyleGetMarginLeft;
+xbStyle.prototype.getPaddingTop = cssStyleGetPaddingTop;
+xbStyle.prototype.getPaddingRight = cssStyleGetPaddingRight;
+xbStyle.prototype.getPaddingBottom = cssStyleGetPaddingBottom;
+xbStyle.prototype.getPaddingLeft = cssStyleGetPaddingLeft;
+xbStyle.prototype.getClientWidth = cssStyleGetClientWidth;
+xbStyle.prototype.getClientHeight = cssStyleGetClientHeight;
+
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbStyle-nn4.js b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbStyle-nn4.js
new file mode 100644
index 0000000..03aacff
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbStyle-nn4.js
@@ -0,0 +1,485 @@
+/*
+ * xbStyle-nn4.js
+ * $Revision: 1.2 $ $Date: 2003/02/07 16:04:22 $
+ */
+
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Netscape code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 2001
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s): Bob Clary <bclary@netscape.com>
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+/////////////////////////////////////////////////////////////
+// xbStyle.getClip()
+
+function nsxbStyleGetClip()
+{
+ var clip = this.styleObj.clip;
+ var rect = new xbClipRect(clip.top, clip.right, clip.bottom, clip.left);
+ return rect.toString();
+}
+
+/////////////////////////////////////////////////////////////
+// xbStyle.setClip()
+
+function nsxbStyleSetClip(sClipString)
+{
+ var rect = new xbClipRect(sClipString);
+ this.styleObj.clip.top = rect.top;
+ this.styleObj.clip.right = rect.right;
+ this.styleObj.clip.bottom = rect.bottom;
+ this.styleObj.clip.left = rect.left;
+}
+
+/////////////////////////////////////////////////////////////
+// xbStyle.getClipTop()
+
+function nsxbStyleGetClipTop()
+{
+ return this.styleObj.clip.top;
+}
+
+/////////////////////////////////////////////////////////////
+// xbStyle.setClipTop()
+
+function nsxbStyleSetClipTop(top)
+{
+ return this.styleObj.clip.top = top;
+}
+
+/////////////////////////////////////////////////////////////
+// xbStyle.getClipRight()
+
+function nsxbStyleGetClipRight()
+{
+ return this.styleObj.clip.right;
+}
+
+/////////////////////////////////////////////////////////////
+// xbStyle.setClipRight()
+
+function nsxbStyleSetClipRight(right)
+{
+ return this.styleObj.clip.right = right;
+}
+
+/////////////////////////////////////////////////////////////
+// xbStyle.getClipBottom()
+
+function nsxbStyleGetClipBottom()
+{
+ return this.styleObj.clip.bottom;
+}
+
+/////////////////////////////////////////////////////////////
+// xbStyle.setClipBottom()
+
+function nsxbStyleSetClipBottom(bottom)
+{
+ return this.styleObj.clip.bottom = bottom;
+}
+
+/////////////////////////////////////////////////////////////
+// xbStyle.getClipLeft()
+
+function nsxbStyleGetClipLeft()
+{
+ return this.styleObj.clip.left;
+}
+
+/////////////////////////////////////////////////////////////
+// xbStyle.setClipLeft()
+
+function nsxbStyleSetClipLeft(left)
+{
+ return this.styleObj.clip.left = left;
+}
+
+/////////////////////////////////////////////////////////////
+// xbStyle.getClipWidth()
+
+function nsxbStyleGetClipWidth()
+{
+ return this.styleObj.clip.width;
+}
+
+/////////////////////////////////////////////////////////////
+// xbStyle.setClipWidth()
+
+function nsxbStyleSetClipWidth(width)
+{
+ return this.styleObj.clip.width = width;
+}
+
+/////////////////////////////////////////////////////////////
+// xbStyle.getClipHeight()
+
+function nsxbStyleGetClipHeight()
+{
+ return this.styleObj.clip.height;
+}
+
+/////////////////////////////////////////////////////////////
+// xbStyle.setClipHeight()
+
+function nsxbStyleSetClipHeight(height)
+{
+ return this.styleObj.clip.height = height;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.getLeft()
+
+function nsxbStyleGetLeft()
+{
+ return this.styleObj.left;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.setLeft()
+
+function nsxbStyleSetLeft(left)
+{
+ this.styleObj.left = left;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.getTop()
+
+function nsxbStyleGetTop()
+{
+ return this.styleObj.top;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.setTop()
+
+function nsxbStyleSetTop(top)
+{
+ this.styleObj.top = top;
+}
+
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.getPageX()
+
+function nsxbStyleGetPageX()
+{
+ return this.styleObj.pageX;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.setPageX()
+
+function nsxbStyleSetPageX(x)
+{
+ this.styleObj.x = this.styleObj.x + x - this.styleObj.pageX;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.getPageY()
+
+
+function nsxbStyleGetPageY()
+{
+ return this.styleObj.pageY;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.setPageY()
+
+function nsxbStyleSetPageY(y)
+{
+ this.styleObj.y = this.styleObj.y + y - this.styleObj.pageY;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.getHeight()
+
+function nsxbStyleGetHeight()
+{
+ //if (this.styleObj.document && this.styleObj.document.height)
+ // return this.styleObj.document.height;
+
+ return this.styleObj.clip.height;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.setHeight()
+
+function nsxbStyleSetHeight(height)
+{
+ this.styleObj.clip.height = height;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.getWidth()
+
+function nsxbStyleGetWidth()
+{
+ //if (this.styleObj.document && this.styleObj.document.width)
+ // return this.styleObj.document.width;
+
+ return this.styleObj.clip.width;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.setWidth()
+
+// netscape will not dynamically change the width of a
+// layer. It will only happen upon a refresh.
+function nsxbStyleSetWidth(width)
+{
+ this.styleObj.clip.width = width;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.getVisibility()
+
+function nsxbStyleGetVisibility()
+{
+ switch(this.styleObj.visibility)
+ {
+ case 'hide':
+ return 'hidden';
+ case 'show':
+ return 'visible';
+ }
+ return '';
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.setVisibility()
+
+function nsxbStyleSetVisibility(visibility)
+{
+ switch(visibility)
+ {
+ case 'hidden':
+ visibility = 'hide';
+ break;
+ case 'visible':
+ visibility = 'show';
+ break;
+ case 'inherit':
+ break;
+ default:
+ visibility = 'show';
+ break;
+ }
+ this.styleObj.visibility = visibility;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.getzIndex()
+
+function nsxbStyleGetzIndex()
+{
+ return this.styleObj.zIndex;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.setzIndex()
+
+function nsxbStyleSetzIndex(zIndex)
+{
+ this.styleObj.zIndex = zIndex;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.getBackgroundColor()
+
+function nsxbStyleGetBackgroundColor()
+{
+ return this.styleObj.bgColor;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.setBackgroundColor()
+
+function nsxbStyleSetBackgroundColor(color)
+{
+ if (color)
+ {
+ this.styleObj.bgColor = color;
+ this.object.document.bgColor = color;
+ this.resizeTo(this.getWidth(), this.getHeight());
+ }
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.getColor()
+
+function nsxbStyleGetColor()
+{
+ return '#ffffff';
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.setColor()
+
+function nsxbStyleSetColor(color)
+{
+ this.object.document.fgColor = color;
+}
+
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.moveAbove()
+
+function xbStyleMoveAbove(cont)
+{
+ this.setzIndex(cont.getzIndex()+1);
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.moveBelow()
+
+function xbStyleMoveBelow(cont)
+{
+ var zindex = cont.getzIndex() - 1;
+
+ this.setzIndex(zindex);
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.moveBy()
+
+function xbStyleMoveBy(deltaX, deltaY)
+{
+ this.moveTo(this.getLeft() + deltaX, this.getTop() + deltaY);
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.moveTo()
+
+function xbStyleMoveTo(x, y)
+{
+ this.setLeft(x);
+ this.setTop(y);
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.moveToAbsolute()
+
+function xbStyleMoveToAbsolute(x, y)
+{
+ this.setPageX(x);
+ this.setPageY(y);
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.resizeBy()
+
+function xbStyleResizeBy(deltaX, deltaY)
+{
+ this.setWidth( this.getWidth() + deltaX );
+ this.setHeight( this.getHeight() + deltaY );
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.resizeTo()
+
+function xbStyleResizeTo(x, y)
+{
+ this.setWidth(x);
+ this.setHeight(y);
+}
+
+////////////////////////////////////////////////////////////////////////
+// Navigator 4.x resizing...
+
+function nsxbStyleOnresize()
+{
+ if (saveInnerWidth != xbGetWindowWidth() || saveInnerHeight != xbGetWindowHeight())
+ location.reload();
+
+ return false;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.setInnerHTML()
+
+function nsxbSetInnerHTML(str)
+{
+ this.object.document.open('text/html');
+ this.object.document.write(str);
+ this.object.document.close();
+}
+
+xbStyle.prototype.getClip = nsxbStyleGetClip;
+xbStyle.prototype.setClip = nsxbStyleSetClip;
+xbStyle.prototype.getClipTop = nsxbStyleGetClipTop;
+xbStyle.prototype.setClipTop = nsxbStyleSetClipTop;
+xbStyle.prototype.getClipRight = nsxbStyleGetClipRight;
+xbStyle.prototype.setClipRight = nsxbStyleSetClipRight;
+xbStyle.prototype.getClipBottom = nsxbStyleGetClipBottom;
+xbStyle.prototype.setClipBottom = nsxbStyleSetClipBottom;
+xbStyle.prototype.getClipLeft = nsxbStyleGetClipLeft;
+xbStyle.prototype.setClipLeft = nsxbStyleSetClipLeft;
+xbStyle.prototype.getClipWidth = nsxbStyleGetClipWidth;
+xbStyle.prototype.setClipWidth = nsxbStyleSetClipWidth;
+xbStyle.prototype.getClipHeight = nsxbStyleGetClipHeight;
+xbStyle.prototype.setClipHeight = nsxbStyleSetClipHeight;
+xbStyle.prototype.getLeft = nsxbStyleGetLeft;
+xbStyle.prototype.setLeft = nsxbStyleSetLeft;
+xbStyle.prototype.getTop = nsxbStyleGetTop;
+xbStyle.prototype.setTop = nsxbStyleSetTop;
+xbStyle.prototype.getPageX = nsxbStyleGetPageX;
+xbStyle.prototype.setPageX = nsxbStyleSetPageX;
+xbStyle.prototype.getPageY = nsxbStyleGetPageY;
+xbStyle.prototype.setPageY = nsxbStyleSetPageY;
+xbStyle.prototype.getVisibility = nsxbStyleGetVisibility;
+xbStyle.prototype.setVisibility = nsxbStyleSetVisibility;
+xbStyle.prototype.getzIndex = nsxbStyleGetzIndex;
+xbStyle.prototype.setzIndex = nsxbStyleSetzIndex;
+xbStyle.prototype.getHeight = nsxbStyleGetHeight;
+xbStyle.prototype.setHeight = nsxbStyleSetHeight;
+xbStyle.prototype.getWidth = nsxbStyleGetWidth;
+xbStyle.prototype.setWidth = nsxbStyleSetWidth;
+xbStyle.prototype.getBackgroundColor = nsxbStyleGetBackgroundColor;
+xbStyle.prototype.setBackgroundColor = nsxbStyleSetBackgroundColor;
+xbStyle.prototype.getColor = nsxbStyleGetColor;
+xbStyle.prototype.setColor = nsxbStyleSetColor;
+xbStyle.prototype.setInnerHTML = nsxbSetInnerHTML;
+xbStyle.prototype.getBorderTopWidth = xbStyleNotSupported;
+xbStyle.prototype.getBorderRightWidth = xbStyleNotSupported;
+xbStyle.prototype.getBorderBottomWidth = xbStyleNotSupported;
+xbStyle.prototype.getBorderLeftWidth = xbStyleNotSupported;
+xbStyle.prototype.getMarginLeft = xbStyleNotSupported;
+xbStyle.prototype.getMarginTop = xbStyleNotSupported;
+xbStyle.prototype.getMarginRight = xbStyleNotSupported;
+xbStyle.prototype.getMarginBottom = xbStyleNotSupported;
+xbStyle.prototype.getMarginLeft = xbStyleNotSupported;
+xbStyle.prototype.getPaddingTop = xbStyleNotSupported;
+xbStyle.prototype.getPaddingRight = xbStyleNotSupported;
+xbStyle.prototype.getPaddingBottom = xbStyleNotSupported;
+xbStyle.prototype.getPaddingLeft = xbStyleNotSupported;
+xbStyle.prototype.getClientWidth = xbStyleNotSupported;
+xbStyle.prototype.getClientHeight = xbStyleNotSupported;
+
+window.saveInnerWidth = window.innerWidth;
+window.saveInnerHeight = window.innerHeight;
+
+window.onresize = nsxbStyleOnresize;
+
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbStyle-not-supported.js b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbStyle-not-supported.js
new file mode 100644
index 0000000..06c4a60
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbStyle-not-supported.js
@@ -0,0 +1,77 @@
+/*
+ * xbStyle-not-supported.js
+ * $Revision: 1.2 $ $Date: 2003/02/07 16:04:22 $
+ */
+
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Netscape code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 2001
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s): Bob Clary <bclary@netscape.com>
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+xbStyle.prototype.toString = xbStyleNotSupported;
+xbStyle.prototype.getClip = xbStyleNotSupported;
+xbStyle.prototype.setClip = xbStyleNotSupported;
+xbStyle.prototype.getClipTop = xbStyleNotSupported;
+xbStyle.prototype.setClipTop = xbStyleNotSupported;
+xbStyle.prototype.getClipRight = xbStyleNotSupported;
+xbStyle.prototype.setClipRight = xbStyleNotSupported;
+xbStyle.prototype.getClipBottom = xbStyleNotSupported;
+xbStyle.prototype.setClipBottom = xbStyleNotSupported;
+xbStyle.prototype.getClipLeft = xbStyleNotSupported;
+xbStyle.prototype.setClipLeft = xbStyleNotSupported;
+xbStyle.prototype.getClipWidth = xbStyleNotSupported;
+xbStyle.prototype.setClipWidth = xbStyleNotSupported;
+xbStyle.prototype.getClipHeight = xbStyleNotSupported;
+xbStyle.prototype.setClipHeight = xbStyleNotSupported;
+xbStyle.prototype.getLeft = xbStyleNotSupported;
+xbStyle.prototype.setLeft = xbStyleNotSupported;
+xbStyle.prototype.getTop = xbStyleNotSupported;
+xbStyle.prototype.setTop = xbStyleNotSupported;
+xbStyle.prototype.getVisibility = xbStyleNotSupported;
+xbStyle.prototype.setVisibility = xbStyleNotSupported;
+xbStyle.prototype.getzIndex = xbStyleNotSupported;
+xbStyle.prototype.setzIndex = xbStyleNotSupported;
+xbStyle.prototype.getHeight = xbStyleNotSupported;
+xbStyle.prototype.setHeight = xbStyleNotSupported;
+xbStyle.prototype.getWidth = xbStyleNotSupported;
+xbStyle.prototype.setWidth = xbStyleNotSupported;
+xbStyle.prototype.getBackgroundColor = xbStyleNotSupported;
+xbStyle.prototype.setBackgroundColor = xbStyleNotSupported;
+xbStyle.prototype.getColor = xbStyleNotSupported;
+xbStyle.prototype.setColor = xbStyleNotSupported;
+xbStyle.prototype.setInnerHTML = xbStyleNotSupported;
+xbStyle.prototype.getBorderTopWidth = xbStyleNotSupported;
+xbStyle.prototype.getBorderRightWidth = xbStyleNotSupported;
+xbStyle.prototype.getBorderBottomWidth = xbStyleNotSupported;
+xbStyle.prototype.getBorderLeftWidth = xbStyleNotSupported;
+xbStyle.prototype.getMarginLeft = xbStyleNotSupported;
+xbStyle.prototype.getMarginTop = xbStyleNotSupported;
+xbStyle.prototype.getMarginRight = xbStyleNotSupported;
+xbStyle.prototype.getMarginBottom = xbStyleNotSupported;
+xbStyle.prototype.getMarginLeft = xbStyleNotSupported;
+xbStyle.prototype.getPaddingTop = xbStyleNotSupported;
+xbStyle.prototype.getPaddingRight = xbStyleNotSupported;
+xbStyle.prototype.getPaddingBottom = xbStyleNotSupported;
+xbStyle.prototype.getPaddingLeft = xbStyleNotSupported;
+xbStyle.prototype.getClientWidth = xbStyleNotSupported;
+xbStyle.prototype.getClientHeight = xbStyleNotSupported;
+
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbStyle.js b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbStyle.js
new file mode 100644
index 0000000..672ff03
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/xbStyle.js
@@ -0,0 +1,295 @@
+/*
+ * xbStyle.js
+ * $Revision: 1.2 $ $Date: 2003/02/07 16:04:22 $
+ */
+
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Netscape code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 2001
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s): Bob Clary <bclary@netscape.com>
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+function xbStyleNotSupported() {}
+
+function xbStyleNotSupportStringValue(propname) { xbDEBUG.dump(propname + ' is not supported in this browser'); return '';};
+
+/////////////////////////////////////////////////////////////
+// xbClipRect
+
+function xbClipRect(a1, a2, a3, a4)
+{
+ this.top = 0;
+ this.right = 0;
+ this.bottom = 0;
+ this.left = 0;
+
+ if (typeof(a1) == 'string')
+ {
+ var val;
+ var ca;
+ var i;
+
+ if (a1.indexOf('rect(') == 0)
+ {
+ // I would have preferred [0-9]+[a-zA-Z]+ for a regexp
+ // but NN4 returns null for that.
+ ca = a1.substring(5, a1.length-1).match(/-?[0-9a-zA-Z]+/g);
+ for (i = 0; i < 4; ++i)
+ {
+ val = xbToInt(ca[i]);
+ if (val != 0 && ca[i].indexOf('px') == -1)
+ {
+ xbDEBUG.dump('xbClipRect: A clipping region ' + a1 + ' was detected that did not use pixels as units. Click Ok to continue, Cancel to Abort');
+ return;
+ }
+ ca[i] = val;
+ }
+ this.top = ca[0];
+ this.right = ca[1];
+ this.bottom = ca[2];
+ this.left = ca[3];
+ }
+ }
+ else if (typeof(a1) == 'number' && typeof(a2) == 'number' && typeof(a3) == 'number' && typeof(a4) == 'number')
+ {
+ this.top = a1;
+ this.right = a2;
+ this.bottom = a3;
+ this.left = a4;
+ }
+}
+
+xbClipRect.prototype.top = 0;
+xbClipRect.prototype.right = 0;
+xbClipRect.prototype.bottom = 0;
+xbClipRect.prototype.left = 0;
+
+
+function xbClipRectGetWidth()
+{
+ return this.right - this.left;
+}
+xbClipRect.prototype.getWidth = xbClipRectGetWidth;
+
+function xbClipRectSetWidth(width)
+{
+ this.right = this.left + width;
+}
+xbClipRect.prototype.setWidth = xbClipRectSetWidth;
+
+function xbClipRectGetHeight()
+{
+ return this.bottom - this.top;
+}
+xbClipRect.prototype.getHeight = xbClipRectGetHeight;
+
+function xbClipRectSetHeight(height)
+{
+ this.bottom = this.top + height;
+}
+xbClipRect.prototype.setHeight = xbClipRectSetHeight;
+
+function xbClipRectToString()
+{
+ return 'rect(' + this.top + 'px ' + this.right + 'px ' + this.bottom + 'px ' + this.left + 'px )' ;
+}
+xbClipRect.prototype.toString = xbClipRectToString;
+
+/////////////////////////////////////////////////////////////
+// xbStyle
+//
+// Note Opera violates the standard by cascading the effective values
+// into the HTMLElement.style object. We can use IE's HTMLElement.currentStyle
+// to get the effective values. In Gecko we will use the W3 DOM Style Standard getComputedStyle
+
+function xbStyle(obj, win, position)
+{
+ if (typeof(obj) == 'object' && typeof(obj.style) != 'undefined')
+ this.styleObj = obj.style;
+ else if (document.layers) // NN4
+ {
+ if (typeof(position) == 'undefined')
+ position = '';
+
+ this.styleObj = obj;
+ this.styleObj.position = position;
+ }
+ this.object = obj;
+ this.window = win ? win : window;
+}
+
+xbStyle.prototype.styleObj = null;
+xbStyle.prototype.object = null;
+
+/////////////////////////////////////////////////////////////
+// xbStyle.getEffectiveValue()
+// note that xbStyle's constructor uses the currentStyle object
+// for IE5+ and that Opera's style object contains computed values
+// already. Netscape Navigator's layer object also contains the
+// computed values as well. Note that IE4 will not return the
+// computed values.
+
+function xbStyleGetEffectiveValue(propname)
+{
+ var value = null;
+
+ if (this.window.document.defaultView && this.window.document.defaultView.getComputedStyle)
+ {
+ // W3
+ // Note that propname is the name of the property in the CSS Style
+ // Object. However the W3 method getPropertyValue takes the actual
+ // property name from the CSS Style rule, i.e., propname is
+ // 'backgroundColor' but getPropertyValue expects 'background-color'.
+
+ var capIndex;
+ var cappropname = propname;
+
+ while ( (capIndex = cappropname.search(/[A-Z]/)) != -1)
+ {
+ if (capIndex != -1)
+ {
+ cappropname = cappropname.substring(0, capIndex) + '-' + cappropname.substring(capIndex, capIndex+1).toLowerCase() + cappropname.substr(capIndex+1);
+ }
+ }
+
+ value = this.window.document.defaultView.getComputedStyle(this.object, '').getPropertyValue(cappropname);
+
+ // xxxHack for Gecko:
+ if (!value && this.styleObj[propname])
+ {
+ value = this.styleObj[propname];
+ }
+ }
+ else if (typeof(this.styleObj[propname]) == 'undefined')
+ {
+ value = xbStyleNotSupportStringValue(propname);
+ }
+ else if (typeof(this.object.currentStyle) != 'undefined')
+ {
+ // IE5+
+ value = this.object.currentStyle[propname];
+ if (!value)
+ {
+ value = this.styleObj[propname];
+ }
+
+ if (propname == 'clip' && !value)
+ {
+ // clip is not stored in IE5/6 handle separately
+ value = 'rect(' + this.object.currentStyle.clipTop + ', ' + this.object.currentStyle.clipRight + ', ' + this.object.currentStyle.clipBottom + ', ' + this.object.currentStyle.clipLeft + ')';
+ }
+ }
+ else
+ {
+ // IE4+, Opera, NN4
+ value = this.styleObj[propname];
+ }
+
+ return value;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.moveAbove()
+
+function xbStyleMoveAbove(cont)
+{
+ this.setzIndex(cont.getzIndex()+1);
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.moveBelow()
+
+function xbStyleMoveBelow(cont)
+{
+ var zindex = cont.getzIndex() - 1;
+
+ this.setzIndex(zindex);
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.moveBy()
+
+function xbStyleMoveBy(deltaX, deltaY)
+{
+ this.moveTo(this.getLeft() + deltaX, this.getTop() + deltaY);
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.moveTo()
+
+function xbStyleMoveTo(x, y)
+{
+ this.setLeft(x);
+ this.setTop(y);
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.moveToAbsolute()
+
+function xbStyleMoveToAbsolute(x, y)
+{
+ this.setPageX(x);
+ this.setPageY(y);
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.resizeBy()
+
+function xbStyleResizeBy(deltaX, deltaY)
+{
+ this.setWidth( this.getWidth() + deltaX );
+ this.setHeight( this.getHeight() + deltaY );
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// xbStyle.resizeTo()
+
+function xbStyleResizeTo(x, y)
+{
+ this.setWidth(x);
+ this.setHeight(y);
+}
+
+////////////////////////////////////////////////////////////////////////
+
+xbStyle.prototype.getEffectiveValue = xbStyleGetEffectiveValue;
+xbStyle.prototype.moveAbove = xbStyleMoveAbove;
+xbStyle.prototype.moveBelow = xbStyleMoveBelow;
+xbStyle.prototype.moveBy = xbStyleMoveBy;
+xbStyle.prototype.moveTo = xbStyleMoveTo;
+xbStyle.prototype.moveToAbsolute = xbStyleMoveToAbsolute;
+xbStyle.prototype.resizeBy = xbStyleResizeBy;
+xbStyle.prototype.resizeTo = xbStyleResizeTo;
+
+if (document.all || document.getElementsByName)
+{
+ xblibrary.loadScript('xbStyle-css.js');
+}
+else if (document.layers)
+{
+ xblibrary.loadScript('xbStyle-nn4.js');
+}
+else
+{
+ xblibrary.loadScript('xbStyle-not-supported.js');
+}
+
+
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/fo/param.xml b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/fo/param.xml
new file mode 100644
index 0000000..040ac22
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/fo/param.xml
@@ -0,0 +1,356 @@
+<?xml version="1.0" encoding="ASCII"?>
+<book version="5.0" xml:id="slides_fo_doc">
+<info>
+<title>Slides FO Parameter Reference</title>
+<releaseinfo role="meta">
+$Id: param.xweb 6633 2007-02-21 18:33:33Z xmldoc $
+</releaseinfo>
+<author>
+ <personname>
+ <surname>Walsh</surname>
+ <firstname>Norman</firstname>
+ </personname>
+</author>
+<copyright>
+ <year>2002</year>
+ <holder>Norman Walsh</holder>
+</copyright>
+<abstract>
+ <para>This is reference documentation for all user-configurable
+ parameters in the DocBook XSL Slides FO stylesheet (for
+ generating PDF slide presentations). Note that the Slides
+ stylesheet for FO output is a customization layer of the
+ DocBook XSL FO stylesheet. Therefore, in addition to the
+ slides-specific parameters listed in this section, you can
+ also use a number of <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../fo/">FO stylesheet
+ parameters</link> to control Slides FO output.</para>
+</abstract>
+</info>
+<reference xml:id="fo">
+ <title>FO: General Params</title>
+<refentry version="5.0" xml:id="slide.title.font.family">
+<refmeta>
+<refentrytitle>slide.title.font.family</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="list-type">open</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">serif</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">sans-serif</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">monospace</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>slide.title.font.family</refname>
+<refpurpose>Specifies font family to use for slide titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="slide.title.font.family.frag">
+&lt;xsl:param name="slide.title.font.family"&gt;Helvetica&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the font family to use for slides titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="slide.font.family">
+<refmeta>
+<refentrytitle>slide.font.family</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="list-type">open</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">serif</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">sans-serif</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">monospace</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>slide.font.family</refname>
+<refpurpose>Specifies font family to use for slide bodies</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="slide.font.family.frag">
+&lt;xsl:param name="slide.font.family"&gt;Helvetica&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the font family to use for slides bodies.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="foil.title.master">
+<refmeta>
+<refentrytitle>foil.title.master</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">number</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>foil.title.master</refname>
+<refpurpose>Specifies unitless font size to use for foil titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="foil.title.master.frag">
+&lt;xsl:param name="foil.title.master"&gt;36&lt;/xsl:param&gt;
+&lt;!-- Inconsistant use of point size? --&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies a unitless font size to use for foil titles; used in
+combination with the <parameter>foil.title.size</parameter>
+parameter.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="foil.title.size">
+<refmeta>
+<refentrytitle>foil.title.size</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>foil.title.size</refname>
+<refpurpose>Specifies font size to use for foil titles, including units</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+ <programlisting xml:id="foil.title.size.frag">
+ &lt;xsl:param name="foil.title.size"&gt;
+ &lt;xsl:value-of select="$foil.title.master"&gt;&lt;/xsl:value-of&gt;&lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+ &lt;/xsl:param&gt;
+ </programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter combines the value of the
+<parameter>foil.title.master</parameter> parameter with a unit
+specification. The default unit is <literal>pt</literal>
+(points).</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="propsets">
+ <title>FO: Property Sets</title>
+<refentry version="5.0" xml:id="slides.properties">
+<refmeta>
+<refentrytitle>slides.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>slides.properties</refname>
+<refpurpose>Specifies properties for all slides</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+ <programlisting xml:id="slides.properties.frag">
+ &lt;xsl:attribute-set name="slides.properties"&gt;
+ &lt;xsl:attribute name="font-family"&gt;
+ &lt;xsl:value-of select="$slide.font.family"&gt;&lt;/xsl:value-of&gt;
+ &lt;/xsl:attribute&gt;
+ &lt;/xsl:attribute-set&gt;
+ </programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies properties that are applied to all slides.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="foilgroup.properties">
+<refmeta>
+<refentrytitle>foilgroup.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>foilgroup.properties</refname>
+<refpurpose>Specifies properties for all foilgroups</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+ <programlisting xml:id="foilgroup.properties.frag">
+ &lt;xsl:attribute-set name="foilgroup.properties"&gt;
+ &lt;xsl:attribute name="font-family"&gt;
+ &lt;xsl:value-of select="$slide.font.family"&gt;&lt;/xsl:value-of&gt;
+ &lt;/xsl:attribute&gt;
+ &lt;/xsl:attribute-set&gt;
+ </programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies properties that are applied to all foilgroups.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="foil.subtitle.properties">
+<refmeta>
+<refentrytitle>foil.subtitle.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>foil.subtitle.properties</refname>
+<refpurpose>Specifies properties for all foil subtitles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+ <programlisting xml:id="foil.subtitle.properties.frag">
+ &lt;xsl:attribute-set name="foil.subtitle.properties"&gt;
+ &lt;xsl:attribute name="font-family"&gt;
+ &lt;xsl:value-of select="$slide.title.font.family"&gt;&lt;/xsl:value-of&gt;
+ &lt;/xsl:attribute&gt;
+ &lt;xsl:attribute name="text-align"&gt;center&lt;/xsl:attribute&gt;
+ &lt;xsl:attribute name="font-size"&gt;
+ &lt;xsl:value-of select="$foil.title.master * 0.8"&gt;&lt;/xsl:value-of&gt;&lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+ &lt;/xsl:attribute&gt;
+ &lt;xsl:attribute name="space-after"&gt;12pt&lt;/xsl:attribute&gt;
+ &lt;/xsl:attribute-set&gt;
+ </programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies properties that are applied to all foil subtitles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="foil.properties">
+<refmeta>
+<refentrytitle>foil.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>foil.properties</refname>
+<refpurpose>Specifies properties for all foils</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+ <programlisting xml:id="foil.properties.frag">
+ &lt;xsl:attribute-set name="foil.properties"&gt;
+ &lt;xsl:attribute name="font-family"&gt;
+ &lt;xsl:value-of select="$slide.font.family"&gt;&lt;/xsl:value-of&gt;
+ &lt;/xsl:attribute&gt;
+ &lt;xsl:attribute name="margin-{$direction.align.start}"&gt;1in&lt;/xsl:attribute&gt;
+ &lt;xsl:attribute name="margin-{$direction.align.end}"&gt;1in&lt;/xsl:attribute&gt;
+ &lt;xsl:attribute name="font-size"&gt;
+ &lt;xsl:value-of select="$body.font.size"&gt;&lt;/xsl:value-of&gt;
+ &lt;/xsl:attribute&gt;
+ &lt;xsl:attribute name="font-weight"&gt;bold&lt;/xsl:attribute&gt;
+ &lt;/xsl:attribute-set&gt;
+ </programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies properties that are applied to all foils.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="speakernote.properties">
+<refmeta>
+<refentrytitle>speakernote.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>speakernote.properties</refname>
+<refpurpose>Specifies properties for all speakernotes</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+ <programlisting xml:id="speakernote.properties.frag">
+ &lt;xsl:attribute-set name="speakernote.properties"&gt;
+ &lt;xsl:attribute name="font-family"&gt;Times Roman&lt;/xsl:attribute&gt;
+ &lt;xsl:attribute name="font-style"&gt;italic&lt;/xsl:attribute&gt;
+ &lt;xsl:attribute name="font-size"&gt;12pt&lt;/xsl:attribute&gt;
+ &lt;xsl:attribute name="font-weight"&gt;normal&lt;/xsl:attribute&gt;
+ &lt;/xsl:attribute-set&gt;
+ </programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies properties that are applied to all speakernotes.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="running.foot.properties">
+<refmeta>
+<refentrytitle>running.foot.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>running.foot.properties</refname>
+<refpurpose>Specifies properties for running foot on each slide</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+ <programlisting xml:id="running.foot.properties.frag">
+ &lt;xsl:attribute-set name="running.foot.properties"&gt;
+ &lt;xsl:attribute name="font-family"&gt;
+ &lt;xsl:value-of select="$slide.font.family"&gt;&lt;/xsl:value-of&gt;
+ &lt;/xsl:attribute&gt;
+ &lt;xsl:attribute name="font-size"&gt;14pt&lt;/xsl:attribute&gt;
+ &lt;xsl:attribute name="color"&gt;#9F9F9F&lt;/xsl:attribute&gt;
+ &lt;/xsl:attribute-set&gt;
+ </programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies properties that are applied to the
+running foot area of each slide.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+
+<appendix xml:id="styleheet"><title>The Stylesheet</title>
+
+<para>The <filename>param.xsl</filename> stylesheet is just a wrapper
+around all these parameters.</para>
+
+<programlisting xml:id="top">
+
+&lt;!-- This file is generated from param.xweb --&gt;
+
+&lt;xsl:stylesheet exclude-result-prefixes="src" version="1.0"&gt;
+
+&lt;!-- ********************************************************************
+ $Id: param.xweb 6633 2007-02-21 18:33:33Z xmldoc $
+ ********************************************************************
+
+ This file is part of the DocBook Slides Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** --&gt;
+
+&lt;src:fragref linkend="slide.font.family.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="slide.title.font.family.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="foil.title.master.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="foil.title.size.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="foilgroup.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="foil.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="foil.subtitle.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="running.foot.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="speakernote.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="slides.properties.frag"&gt;&lt;/src:fragref&gt;
+
+&lt;/xsl:stylesheet&gt;
+</programlisting>
+
+</appendix>
+</book>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/fo/param.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/fo/param.xsl
new file mode 100644
index 0000000..bfeb493
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/fo/param.xsl
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!-- This file is generated from param.xweb -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!-- ********************************************************************
+ $Id: param.xweb 6633 2007-02-21 18:33:33Z xmldoc $
+ ********************************************************************
+
+ This file is part of the DocBook Slides Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<xsl:param name="slide.font.family">Helvetica</xsl:param>
+<xsl:param name="slide.title.font.family">Helvetica</xsl:param>
+<xsl:param name="foil.title.master">36</xsl:param>
+<!-- Inconsistant use of point size? -->
+ <xsl:param name="foil.title.size">
+ <xsl:value-of select="$foil.title.master"/><xsl:text>pt</xsl:text>
+ </xsl:param>
+
+ <xsl:attribute-set name="foilgroup.properties">
+ <xsl:attribute name="font-family">
+ <xsl:value-of select="$slide.font.family"/>
+ </xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="foil.properties">
+ <xsl:attribute name="font-family">
+ <xsl:value-of select="$slide.font.family"/>
+ </xsl:attribute>
+ <xsl:attribute name="margin-{$direction.align.start}">1in</xsl:attribute>
+ <xsl:attribute name="margin-{$direction.align.end}">1in</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.size"/>
+ </xsl:attribute>
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="foil.subtitle.properties">
+ <xsl:attribute name="font-family">
+ <xsl:value-of select="$slide.title.font.family"/>
+ </xsl:attribute>
+ <xsl:attribute name="text-align">center</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$foil.title.master * 0.8"/><xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="space-after">12pt</xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="running.foot.properties">
+ <xsl:attribute name="font-family">
+ <xsl:value-of select="$slide.font.family"/>
+ </xsl:attribute>
+ <xsl:attribute name="font-size">14pt</xsl:attribute>
+ <xsl:attribute name="color">#9F9F9F</xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="speakernote.properties">
+ <xsl:attribute name="font-family">Times Roman</xsl:attribute>
+ <xsl:attribute name="font-style">italic</xsl:attribute>
+ <xsl:attribute name="font-size">12pt</xsl:attribute>
+ <xsl:attribute name="font-weight">normal</xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="slides.properties">
+ <xsl:attribute name="font-family">
+ <xsl:value-of select="$slide.font.family"/>
+ </xsl:attribute>
+ </xsl:attribute-set>
+
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/fo/plain-titlepage.xml b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/fo/plain-titlepage.xml
new file mode 100644
index 0000000..d0a92da
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/fo/plain-titlepage.xml
@@ -0,0 +1,79 @@
+<!DOCTYPE t:templates [
+<!ENTITY hsize0 "10pt">
+<!ENTITY hsize1 "12pt">
+<!ENTITY hsize2 "14.4pt">
+<!ENTITY hsize3 "17.28pt">
+<!ENTITY hsize4 "20.736pt">
+<!ENTITY hsize5 "24.8832pt">
+<!ENTITY hsize0space "7.5pt"> <!-- 0.75 * hsize0 -->
+<!ENTITY hsize1space "9pt"> <!-- 0.75 * hsize1 -->
+<!ENTITY hsize2space "10.8pt"> <!-- 0.75 * hsize2 -->
+<!ENTITY hsize3space "12.96pt"> <!-- 0.75 * hsize3 -->
+<!ENTITY hsize4space "15.552pt"> <!-- 0.75 * hsize4 -->
+<!ENTITY hsize5space "18.6624pt"> <!-- 0.75 * hsize5 -->
+]>
+<t:templates xmlns:t="http://nwalsh.com/docbook/xsl/template/1.0"
+ xmlns:param="http://nwalsh.com/docbook/xsl/template/1.0/param"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="slides" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title t:predicate="[1]"
+ t:named-template="component.title"
+ param:node="ancestor-or-self::slides[1]"
+ text-align="center"
+ space-after="1em"
+ padding-top="1.5in"
+ keep-with-next="always"
+ font-size="{$foil.title.size}"
+ font-weight="bold"
+ font-family="{$slide.title.font.family}"/>
+
+ <subtitle t:predicate="[1]"
+ text-align="center"
+ space-after="1em"
+ font-family="{$slide.title.font.family}"/>
+
+ <corpauthor font-size="&hsize4;"
+ text-align="center"
+ space-after="1em"/>
+ <authorgroup/>
+ <author font-size="&hsize4;"
+ text-align="center"
+ space-after="1em"/>
+
+ <pubdate font-size="&hsize3;"
+ text-align="center"
+ space-after="1em"/>
+
+ <confgroup font-size="&hsize3;"
+ text-align="center"
+ space-after="1em"/>
+
+ <releaseinfo font-size="&hsize3;"
+ text-align="center"
+ space-after="1em"/>
+
+ <copyright font-size="&hsize3;"
+ text-align="center"/>
+
+ <revision text-align="center"/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+</t:templates>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/fo/plain-titlepage.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/fo/plain-titlepage.xsl
new file mode 100644
index 0000000..a6148aa
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/fo/plain-titlepage.xsl
@@ -0,0 +1,187 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" version="1.0" exclude-result-prefixes="exsl">
+
+<!-- This stylesheet was created by template/titlepage.xsl-->
+
+<xsl:template name="slides.titlepage.recto">
+ <xsl:choose>
+ <xsl:when test="slidesinfo/title">
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="slidesinfo/title[1]"/>
+ </xsl:when>
+ <xsl:when test="docinfo/title">
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="docinfo/title[1]"/>
+ </xsl:when>
+ <xsl:when test="info/title">
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="info/title[1]"/>
+ </xsl:when>
+ <xsl:when test="title">
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="title[1]"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="slidesinfo/subtitle">
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="slidesinfo/subtitle[1]"/>
+ </xsl:when>
+ <xsl:when test="docinfo/subtitle">
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="docinfo/subtitle[1]"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="info/subtitle[1]"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="subtitle[1]"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="slidesinfo/corpauthor"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="info/corpauthor"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="slidesinfo/authorgroup"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="info/authorgroup"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="slidesinfo/author"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="docinfo/author"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="info/author"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="slidesinfo/pubdate"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="info/pubdate"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="slidesinfo/confgroup"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="docinfo/confgroup"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="info/confgroup"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="slidesinfo/releaseinfo"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="slidesinfo/copyright"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="info/copyright"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="slidesinfo/revision"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="docinfo/revision"/>
+ <xsl:apply-templates mode="slides.titlepage.recto.auto.mode" select="info/revision"/>
+</xsl:template>
+
+<xsl:template name="slides.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="slides.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="slides.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="slides.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="slides.titlepage">
+ <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="slides.titlepage.before.recto"/>
+ <xsl:call-template name="slides.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <fo:block><xsl:copy-of select="$recto.content"/></fo:block>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="slides.titlepage.before.verso"/>
+ <xsl:call-template name="slides.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <fo:block><xsl:copy-of select="$verso.content"/></fo:block>
+ </xsl:if>
+ <xsl:call-template name="slides.titlepage.separator"/>
+ </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="slides.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="slides.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="slides.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="slides.titlepage.recto.style" text-align="center" space-after="1em" padding-top="1.5in" keep-with-next="always" font-size="{$foil.title.size}" font-weight="bold" font-family="{$slide.title.font.family}">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::slides[1]"/>
+</xsl:call-template>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="slides.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="slides.titlepage.recto.style" text-align="center" space-after="1em" font-family="{$slide.title.font.family}">
+<xsl:apply-templates select="." mode="slides.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="slides.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="slides.titlepage.recto.style" font-size="20.736pt" text-align="center" space-after="1em">
+<xsl:apply-templates select="." mode="slides.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="slides.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="slides.titlepage.recto.style">
+<xsl:apply-templates select="." mode="slides.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="slides.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="slides.titlepage.recto.style" font-size="20.736pt" text-align="center" space-after="1em">
+<xsl:apply-templates select="." mode="slides.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="slides.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="slides.titlepage.recto.style" font-size="17.28pt" text-align="center" space-after="1em">
+<xsl:apply-templates select="." mode="slides.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="slides.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="slides.titlepage.recto.style" font-size="17.28pt" text-align="center" space-after="1em">
+<xsl:apply-templates select="." mode="slides.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="slides.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="slides.titlepage.recto.style" font-size="17.28pt" text-align="center" space-after="1em">
+<xsl:apply-templates select="." mode="slides.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="slides.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="slides.titlepage.recto.style" font-size="17.28pt" text-align="center">
+<xsl:apply-templates select="." mode="slides.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="slides.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="slides.titlepage.recto.style" text-align="center">
+<xsl:apply-templates select="." mode="slides.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/fo/plain.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/fo/plain.xsl
new file mode 100644
index 0000000..b4e729e
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/fo/plain.xsl
@@ -0,0 +1,528 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ xmlns:rx="http://www.renderx.com/XSL/Extensions"
+ version="1.0">
+
+<!-- ********************************************************************
+ $Id: plain.xsl 8101 2008-08-03 18:35:14Z mzjn $
+ ********************************************************************
+
+ This file is part of the DocBook Slides Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<xsl:import href="../../fo/docbook.xsl"/>
+<xsl:import href="param.xsl"/>
+
+<xsl:param name="alignment" select="'start'"/>
+
+<xsl:include href="plain-titlepage.xsl"/>
+
+<xsl:param name="local.l10n.xml" select="document('')"/>
+<i18n xmlns="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+ <l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="en">
+ <l:gentext key="Continued" text="(Continued)"/>
+ <l:context name="title">
+ <l:template name="slides" text="%t"/>
+ <l:template name="foilgroup" text="%t"/>
+ <l:template name="foil" text="%t"/>
+ </l:context>
+ </l:l10n>
+</i18n>
+
+<xsl:variable name="root.elements" select="' slides '"/>
+
+<xsl:param name="preferred.mediaobject.role" select="'print'"/>
+
+<xsl:param name="page.orientation" select="'landscape'"/>
+
+<xsl:param name="body.font.master" select="24"/>
+
+<xsl:attribute-set name="formal.title.properties"
+ use-attribute-sets="normal.para.spacing">
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.2"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="hyphenate">false</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">8pt</xsl:attribute>
+ <xsl:attribute name="space-after.optimum">6pt</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">10pt</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="list.block.spacing">
+ <xsl:attribute name="space-before.optimum">12pt</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">8pt</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">14pt</xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0pt</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0pt</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0pt</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="list.item.spacing">
+ <xsl:attribute name="space-before.optimum">6pt</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">4pt</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">8pt</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="normal.para.spacing">
+ <xsl:attribute name="space-before.optimum">8pt</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">6pt</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">10pt</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="slides.titlepage.recto.style">
+ <xsl:attribute name="font-family">
+ <xsl:value-of select="$slide.font.family"/>
+ </xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="slides.titlepage.verso.style">
+ <xsl:attribute name="font-family">
+ <xsl:value-of select="$slide.font.family"/>
+ </xsl:attribute>
+</xsl:attribute-set>
+
+<!-- ============================================================ -->
+
+<xsl:param name="page.margin.top" select="'0.25in'"/>
+<xsl:param name="region.before.extent" select="'0.75in'"/>
+<xsl:param name="body.margin.top" select="'1in'"/>
+
+<xsl:param name="region.after.extent" select="'0.5in'"/>
+<xsl:param name="body.margin.bottom" select="'0.5in'"/>
+<xsl:param name="page.margin.bottom" select="'0.25in'"/>
+
+<xsl:param name="page.margin.inner" select="'0.25in'"/>
+<xsl:param name="page.margin.outer" select="'0.25in'"/>
+<xsl:param name="column.count.body" select="1"/>
+
+<xsl:template name="user.pagemasters">
+ <fo:simple-page-master master-name="slides-titlepage-master"
+ page-width="{$page.width}"
+ page-height="{$page.height}"
+ margin-top="{$page.margin.top}"
+ margin-bottom="{$page.margin.bottom}"
+ margin-left="{$page.margin.inner}"
+ margin-right="{$page.margin.outer}">
+ <fo:region-body margin-bottom="0pt"
+ margin-top="0pt"
+ column-count="{$column.count.body}">
+ </fo:region-body>
+ </fo:simple-page-master>
+
+ <fo:simple-page-master master-name="slides-foil-master"
+ page-width="{$page.width}"
+ page-height="{$page.height}"
+ margin-top="{$page.margin.top}"
+ margin-bottom="{$page.margin.bottom}"
+ margin-left="{$page.margin.inner}"
+ margin-right="{$page.margin.outer}">
+ <fo:region-body margin-bottom="{$body.margin.bottom}"
+ margin-top="{$body.margin.top}"
+ column-count="{$column.count.body}">
+ </fo:region-body>
+ <fo:region-before region-name="xsl-region-before-foil"
+ extent="{$region.before.extent}"
+ display-align="before"/>
+ <fo:region-after region-name="xsl-region-after-foil"
+ extent="{$region.after.extent}"
+ display-align="after"/>
+ </fo:simple-page-master>
+
+ <fo:simple-page-master master-name="slides-foil-continued-master"
+ page-width="{$page.width}"
+ page-height="{$page.height}"
+ margin-top="{$page.margin.top}"
+ margin-bottom="{$page.margin.bottom}"
+ margin-left="{$page.margin.inner}"
+ margin-right="{$page.margin.outer}">
+ <fo:region-body margin-bottom="{$body.margin.bottom}"
+ margin-top="{$body.margin.top}"
+ column-count="{$column.count.body}">
+ </fo:region-body>
+ <fo:region-before region-name="xsl-region-before-foil-continued"
+ extent="{$region.before.extent}"
+ display-align="before"/>
+ <fo:region-after region-name="xsl-region-after-foil-continued"
+ extent="{$region.after.extent}"
+ display-align="after"/>
+ </fo:simple-page-master>
+
+ <fo:page-sequence-master master-name="slides-titlepage">
+ <fo:repeatable-page-master-alternatives>
+ <fo:conditional-page-master-reference master-reference="slides-titlepage-master"/>
+ </fo:repeatable-page-master-alternatives>
+ </fo:page-sequence-master>
+
+ <fo:page-sequence-master master-name="slides-foil">
+ <fo:repeatable-page-master-alternatives>
+ <fo:conditional-page-master-reference master-reference="slides-foil-master"
+ page-position="first"/>
+ <fo:conditional-page-master-reference master-reference="slides-foil-continued-master"/>
+ </fo:repeatable-page-master-alternatives>
+ </fo:page-sequence-master>
+</xsl:template>
+
+<xsl:template match="*" mode="running.head.mode">
+ <xsl:param name="master-reference" select="'unknown'"/>
+ <!-- use the foilgroup title if there is one -->
+ <fo:static-content flow-name="xsl-region-before-foil">
+ <fo:block background-color="white"
+ color="black"
+ font-size="{$foil.title.size}"
+ font-weight="bold"
+ text-align="center"
+ font-family="{$slide.title.font.family}">
+ <xsl:apply-templates select="title" mode="titlepage.mode"/>
+ </fo:block>
+ </fo:static-content>
+
+ <fo:static-content flow-name="xsl-region-before-foil-continued">
+ <fo:block background-color="white"
+ color="black"
+ font-size="{$foil.title.size}"
+ font-weight="bold"
+ text-align="center"
+ font-family="{$slide.title.font.family}">
+ <xsl:apply-templates select="title" mode="titlepage.mode"/>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Continued'"/>
+ </xsl:call-template>
+ </fo:block>
+ </fo:static-content>
+</xsl:template>
+
+<xsl:template match="*" mode="running.foot.mode">
+ <xsl:param name="master-reference" select="'unknown'"/>
+
+ <xsl:variable name="last-slide"
+ select="(//foil|//foilgroup)[last()]"/>
+
+ <xsl:variable name="last-id">
+ <xsl:choose>
+ <xsl:when test="$last-slide/@id">
+ <xsl:value-of select="$last-slide/@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id($last-slide)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="content">
+ <fo:table table-layout="fixed" width="100%"
+ xsl:use-attribute-sets="running.foot.properties">
+ <fo:table-column column-number="1" column-width="33%"/>
+ <fo:table-column column-number="2" column-width="34%"/>
+ <fo:table-column column-number="3" column-width="33%"/>
+ <fo:table-body>
+ <fo:table-row height="14pt">
+ <fo:table-cell text-align="left">
+ <fo:block>
+ <xsl:if test="self::foil">
+ <xsl:choose>
+ <xsl:when test="ancestor::foilgroup[1]/titleabbrev">
+ <xsl:apply-templates select="ancestor::foilgroup[1]/titleabbrev"
+ mode="titlepage.mode"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="ancestor::foilgroup[1]/title"
+ mode="titlepage.mode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </fo:block>
+ </fo:table-cell>
+ <fo:table-cell text-align="center">
+ <fo:block>
+ <xsl:if test="/slides/slidesinfo/releaseinfo[@role='copyright']">
+ <xsl:apply-templates select="/slides/slidesinfo/releaseinfo[@role='copyright']"
+ mode="value"/>
+ <xsl:text>&#160;&#160;&#160;</xsl:text>
+ </xsl:if>
+ <xsl:apply-templates select="/slides/slidesinfo/copyright"
+ mode="titlepage.mode"/>
+ </fo:block>
+ </fo:table-cell>
+ <fo:table-cell text-align="right">
+ <fo:block>
+ <fo:page-number/>
+ <xsl:text>&#160;/&#160;</xsl:text>
+ <fo:page-number-citation ref-id="{$last-id}"/>
+ </fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table>
+ </xsl:variable>
+
+ <fo:static-content flow-name="xsl-region-after-foil">
+ <fo:block>
+ <xsl:copy-of select="$content"/>
+ </fo:block>
+ </fo:static-content>
+
+ <fo:static-content flow-name="xsl-region-after-foil-continued">
+ <fo:block>
+ <xsl:copy-of select="$content"/>
+ </fo:block>
+ </fo:static-content>
+</xsl:template>
+
+<xsl:template name="select.user.pagemaster">
+ <xsl:param name="element"/>
+ <xsl:param name="pageclass"/>
+ <xsl:param name="default-pagemaster"/>
+
+ <xsl:choose>
+ <xsl:when test="$element = 'slides'">slides-titlepage</xsl:when>
+ <xsl:otherwise>slides-foil</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="slides">
+ <xsl:variable name="master-reference">
+ <xsl:call-template name="select.pagemaster"/>
+ </xsl:variable>
+
+ <fo:page-sequence hyphenate="{$hyphenate}"
+ master-reference="{$master-reference}">
+ <xsl:attribute name="language">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:attribute>
+
+ <xsl:apply-templates select="." mode="running.head.mode">
+ <xsl:with-param name="master-reference" select="$master-reference"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="." mode="running.foot.mode">
+ <xsl:with-param name="master-reference" select="$master-reference"/>
+ </xsl:apply-templates>
+ <fo:flow flow-name="xsl-region-body">
+ <fo:block>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ <xsl:call-template name="slides.titlepage"/>
+ <xsl:apply-templates select="speakernotes"/>
+ </fo:block>
+ </fo:flow>
+ </fo:page-sequence>
+ <xsl:apply-templates select="foil|foilgroup"/>
+</xsl:template>
+
+<xsl:template match="slidesinfo"/>
+
+<xsl:template match="slides" mode="title.markup">
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(slidesinfo/title|title)[1]"
+ mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="foilgroup.titlepage">
+ <fo:block background-color="black"
+ color="white"
+ font-size="{$foil.title.size}"
+ font-weight="bold"
+ text-align="center"
+ padding-top="12pt"
+ padding-bottom="12pt"
+ space-after="1em">
+ <xsl:apply-templates select="title" mode="titlepage.mode"/>
+ </fo:block>
+</xsl:template>
+
+<xsl:template match="foilgroup">
+ <xsl:variable name="master-reference">
+ <xsl:call-template name="select.pagemaster"/>
+ </xsl:variable>
+
+ <fo:page-sequence hyphenate="{$hyphenate}"
+ master-reference="{$master-reference}">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ <xsl:attribute name="language">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:attribute>
+
+ <xsl:apply-templates select="." mode="running.head.mode">
+ <xsl:with-param name="master-reference" select="$master-reference"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="." mode="running.foot.mode">
+ <xsl:with-param name="master-reference" select="$master-reference"/>
+ </xsl:apply-templates>
+
+ <fo:flow flow-name="xsl-region-body">
+ <fo:block>
+ <xsl:if test="*[not(self::foil)]">
+ <fo:block xsl:use-attribute-sets="foil.properties" space-after="1em">
+ <xsl:apply-templates select="*[not(self::foil)]"/>
+ </fo:block>
+ </xsl:if>
+
+ <xsl:call-template name="foilgroup.titlepage"/>
+ </fo:block>
+ </fo:flow>
+ </fo:page-sequence>
+ <xsl:apply-templates select="foil"/>
+</xsl:template>
+
+<xsl:template match="foilgroup/title"/>
+<xsl:template match="foilgroup/titleabbrev"/>
+
+<xsl:template match="foilgroup/titleabbrev" mode="titlepage.mode">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="slides/foilgroup/title" mode="titlepage.mode">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="title" mode="foilgroup.titlepage.recto.mode">
+ <fo:block>
+ <fo:inline color="white">.</fo:inline>
+ <fo:block space-before="2in">
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+ </fo:block>
+ </fo:block>
+</xsl:template>
+
+<xsl:template match="foilgroupinfo"/>
+
+<!-- ============================================================ -->
+
+<!--
+<xsl:template name="foil.titlepage">
+ <fo:block background-color="white"
+ color="black"
+ font-size="{$foil.title.size}"
+ font-weight="bold"
+ text-align="center"
+ padding-top="12pt"
+ padding-bottom="12pt"
+ space-after="1em">
+ <xsl:apply-templates select="title" mode="titlepage.mode"/>
+ </fo:block>
+</xsl:template>
+-->
+
+<xsl:template match="foil">
+ <xsl:variable name="master-reference">
+ <xsl:call-template name="select.pagemaster"/>
+ </xsl:variable>
+
+ <fo:page-sequence hyphenate="{$hyphenate}"
+ master-reference="{$master-reference}">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ <xsl:attribute name="language">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:attribute>
+
+ <xsl:apply-templates select="." mode="running.head.mode">
+ <xsl:with-param name="master-reference" select="$master-reference"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="." mode="running.foot.mode">
+ <xsl:with-param name="master-reference" select="$master-reference"/>
+ </xsl:apply-templates>
+ <fo:flow flow-name="xsl-region-body">
+ <fo:block>
+ <fo:block xsl:use-attribute-sets="foil.properties">
+ <xsl:apply-templates/>
+ </fo:block>
+ </fo:block>
+ </fo:flow>
+ </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="foilinfo"/>
+<xsl:template match="foil/title"/>
+<xsl:template match="foil/subtitle">
+ <fo:block xsl:use-attribute-sets="foil.subtitle.properties">
+ <xsl:apply-templates/>
+ </fo:block>
+</xsl:template>
+<xsl:template match="foil/titleabbrev"/>
+
+<!-- ============================================================ -->
+
+<xsl:template match="slides" mode="label.markup">
+ <xsl:if test="@label">
+ <xsl:value-of select="@label"/>
+ </xsl:if>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="speakernotes">
+ <fo:block xsl:use-attribute-sets="speakernote.properties">
+ <xsl:apply-templates/>
+ </fo:block>
+</xsl:template>
+
+<!-- ============================================================ -->
+<!-- Bookmarks -->
+
+<!-- XEP -->
+
+<xsl:template match="slides|foilgroup|foil[not(@role) or @role != 'ENDTITLE']"
+ mode="xep.outline">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+ <xsl:variable name="bookmark-label">
+ <xsl:apply-templates select="." mode="object.title.markup"/>
+ </xsl:variable>
+
+ <!-- Put the root element bookmark at the same level as its children -->
+ <!-- If the object is a set or book, generate a bookmark for the toc -->
+
+ <xsl:choose>
+ <xsl:when test="parent::*">
+ <rx:bookmark internal-destination="{$id}">
+ <rx:bookmark-label>
+ <xsl:value-of select="$bookmark-label"/>
+ </rx:bookmark-label>
+ <xsl:apply-templates select="*" mode="xep.outline"/>
+ </rx:bookmark>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$bookmark-label != ''">
+ <rx:bookmark internal-destination="{$id}">
+ <rx:bookmark-label>
+ <xsl:value-of select="$bookmark-label"/>
+ </rx:bookmark-label>
+ </rx:bookmark>
+ </xsl:if>
+
+ <xsl:apply-templates select="*" mode="xep.outline"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- Handling of xrefs -->
+
+<xsl:template match="foil|foilgroup" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+
+ <xsl:apply-templates select="." mode="object.xref.markup">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/css.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/css.xsl
new file mode 100644
index 0000000..1692000
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/css.xsl
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<!-- ====================================================================== -->
+
+<xsl:template name="css-file">
+ <xsl:param name="css" select="'slides.css'"/>
+
+ <xsl:variable name="source.css.dir">
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'css-stylesheet-dir'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$source.css.dir != ''">
+ <xsl:value-of select="$source.css.dir"/>
+ <xsl:text>/</xsl:text>
+ </xsl:when>
+ <xsl:when test="$css.stylesheet.dir != ''">
+ <xsl:value-of select="$css.stylesheet.dir"/>
+ <xsl:text>/</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>http://docbook.sourceforge.net/release/slides/browser/</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:value-of select="$css"/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- active navigation images -->
+
+<xsl:template name="css.stylesheet">
+ <xsl:param name="css" select="$css.stylesheet"/>
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="css-file">
+ <xsl:with-param name="css" select="$css"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/default.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/default.xsl
new file mode 100644
index 0000000..00a0d81
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/default.xsl
@@ -0,0 +1,261 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<xsl:import href="slides-common.xsl"/>
+
+<xsl:output method="html"/>
+
+<xsl:param name="css.stylesheet" select="'slides-default.css'"/>
+
+<xsl:template name="top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navhead">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0"
+ summary="Navigation">
+ <tr>
+ <xsl:call-template name="generate.toc.hide.show"/>
+ <td align="left" width="10%">
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+
+ <img alt="Prev" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>&#160;</xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td align="center" width="80%">
+ <xsl:variable name="prestitle">
+ <xsl:value-of select="(/slides/slidesinfo/title
+ |/slides/title)[1]"/>
+ </xsl:variable>
+
+ <span class="navheader">
+ <xsl:value-of select="$prestitle"/>
+ </span>
+ </td>
+ <td align="right" width="10%">
+ <xsl:choose>
+ <xsl:when test="$next">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+
+ <img alt="Next" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>&#160;</xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+ </table>
+ <hr class="top-nav-sep"/>
+ </div>
+</xsl:template>
+
+<xsl:template name="bottom-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navfoot">
+ <hr class="bottom-nav-sep"/>
+ <table width="100%" border="0" cellpadding="0" cellspacing="0"
+ summary="Navigation">
+ <tr>
+ <td align="left" width="80%" valign="top">
+ <span class="navfooter">
+ <xsl:apply-templates select="/slides/slidesinfo/copyright"
+ mode="slide.footer.mode"/>
+ </span>
+ </td>
+ <td align="right" width="20%" valign="top">
+ <span class="index">
+ <xsl:value-of select="count(preceding::foil)
+ + count(preceding::foilgroup)
+ + count(ancestor::foilgroup)
+ + 1"/>
+ </span>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="titlepage-top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navhead">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0"
+ summary="Navigation">
+ <tr>
+ <td align="left" width="10%">
+ <span class="toclink">
+ <a href="{$toc.html}">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key">TableofContents</xsl:with-param>
+ </xsl:call-template>
+ </a>
+ </span>
+ </td>
+ <td align="center" width="80%">
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ <td align="right" width="10%">
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<xsl:template name="titlepage-bottom-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navfoot">
+ <table width="100%" border="0"
+ cellspacing="0" cellpadding="0"
+ summary="Navigation">
+ <tr>
+ <td align="left" width="80%" valign="top">
+ <span class="navfooter">
+ <xsl:apply-templates select="/slides/slidesinfo/copyright"
+ mode="slide.footer.mode"/>
+ </span>
+ </td>
+ <td align="right" width="20%" valign="top">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="(following::foilgroup|following::foil)[1]"
+ mode="filename"/>
+ </xsl:attribute>
+ <img alt="Next" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<xsl:template name="toc-top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navhead">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0"
+ summary="Navigation">
+ <tr>
+ <td align="left">
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<xsl:template name="toc-bottom-nav">
+ <div class="navfoot">
+ <table width="100%" border="0"
+ cellspacing="0" cellpadding="0"
+ summary="Navigation">
+ <tr>
+ <td align="left" width="80%" valign="top">
+ <span class="navfooter">
+ <xsl:apply-templates select="/slides/slidesinfo/copyright"
+ mode="slide.footer.mode"/>
+ </span>
+ </td>
+ <td align="right" width="20%" valign="top">
+ <a href="{$titlefoil.html}">
+ <img alt="Next" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="generate.toc.hide.show">
+ <xsl:if test="$toc.hide.show != 0">
+ <td>
+ <img hspace="4" alt="Hide/Show TOC">
+ <xsl:attribute name="src">
+ <xsl:call-template name="hidetoc.image"/>
+ </xsl:attribute>
+ <xsl:attribute name="onClick">
+ <xsl:text>toggletoc(this,</xsl:text>
+ <xsl:value-of select="$toc.width"/>
+ <xsl:text>,'</xsl:text>
+ <xsl:call-template name="hidetoc.image"/>
+ <xsl:text>','</xsl:text>
+ <xsl:call-template name="showtoc.image"/>
+ <xsl:text>');</xsl:text>
+ </xsl:attribute>
+ </img>
+ </td>
+ </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="@*" mode="copy">
+ <xsl:attribute name="{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+</xsl:template>
+
+<xsl:template match="html:*" xmlns:html='http://www.w3.org/1999/xhtml'>
+ <xsl:element name="{local-name(.)}" namespace="">
+ <xsl:apply-templates select="@*" mode="copy"/>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/flat.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/flat.xsl
new file mode 100644
index 0000000..30fbf00
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/flat.xsl
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<xsl:import href="slides-common.xsl"/>
+
+<xsl:template match="/">
+ <html>
+ <head>
+ <title><xsl:value-of select="/slides/slidesinfo/title"/></title>
+ </head>
+ <body>
+ <xsl:apply-templates/>
+ </body>
+ </html>
+</xsl:template>
+
+<xsl:template match="slidesinfo">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <div id="{$id}" class="titlepage">
+ <div class="titlepage-body">
+ <xsl:call-template name="titlepage-body"/>
+ </div>
+ </div>
+</xsl:template>
+
+<xsl:template match="slides" mode="toc">
+ <!-- nop -->
+</xsl:template>
+
+<xsl:template match="foil">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <div class="{name(.)}" id="{$id}">
+ <div class="foil-body">
+ <xsl:call-template name="foil-body"/>
+ </div>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="foilgroup">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <div class="{name(.)}" id="{$id}">
+ <div class="foilgroup-body">
+ <xsl:call-template name="foilgroup-body"/>
+ </div>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+
+ <xsl:apply-templates select="foil"/>
+</xsl:template>
+
+<xsl:template match="author" mode="titlepage.mode">
+ <div class="{name(.)}">
+ <h2 class="{name(.)}"><xsl:call-template name="person.name"/></h2>
+ <xsl:apply-templates mode="titlepage.mode" select="./contrib"/>
+ <xsl:apply-templates mode="titlepage.mode" select="./affiliation"/>
+ </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/frames.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/frames.xsl
new file mode 100644
index 0000000..05633de
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/frames.xsl
@@ -0,0 +1,2016 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<xsl:import href="slides-common.xsl"/>
+
+<xsl:param name="titlefoil.html" select="concat('titlepg', $html.ext)"/>
+
+<xsl:param name="css.stylesheet" select="'slides-frames.css'"/>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="doctype-public">
+ <xsl:param name="frameset" select="0"/>
+ <xsl:choose>
+ <xsl:when test="$stylesheet.result.type='html'">
+ <xsl:choose>
+ <!-- Assume when chunker.output.doctype-public is set the user
+ wants to have doctypes written out. If frameset is set
+ then overide with a frameset public identifier. -->
+ <xsl:when test="$chunker.output.doctype-public != '' and $frameset != 0">
+ <xsl:text>-//W3C//DTD HTML 4.01 Frameset//EN</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$chunker.output.doctype-public"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$stylesheet.result.type='xhtml'">
+ <xsl:choose>
+ <xsl:when test="$frameset != 0">
+ <xsl:text>-//W3C//DTD XHTML 1.0 Frameset//EN</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>-//W3C//DTD XHTML 1.0 Transitional//EN</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="doctype-system">
+ <xsl:param name="frameset" select="0"/>
+ <xsl:choose>
+ <xsl:when test="$stylesheet.result.type='html'">
+ <xsl:choose>
+ <!-- Assume when chunker.output.doctype-system is set the user
+ wants to have doctypes written out. If frameset is set
+ then overide with a frameset system identifier. -->
+ <xsl:when test="$chunker.output.doctype-system != '' and $frameset != 0">
+ <xsl:text>http://www.w3.org/TR/html4/loose.dtd</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$chunker.output.doctype-system"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$stylesheet.result.type='xhtml'">
+ <xsl:choose>
+ <xsl:when test="$frameset != 0">
+ <xsl:text>http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="slides">
+ <xsl:variable name="title">
+ <xsl:choose>
+ <xsl:when test="(slidesinfo/titleabbrev|titleabbrev)">
+ <xsl:value-of select="(slidesinfo/titleabbrev|titleabbrev)[1]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="(slidesinfo/title|title)[1]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="toc.rows" select="1+count(//foilgroup)+count(//foil)"/>
+ <xsl:variable name="toc.height" select="$toc.rows * $toc.row.height"/>
+
+ <xsl:if test="$overlay != 0 and $multiframe != 0">
+ <xsl:message terminate='yes'>
+ <xsl:text>Multiframe and overlay are mutually exclusive.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:variable name="doctype-public">
+ <xsl:call-template name="doctype-public">
+ <xsl:with-param name="frameset" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="doctype-system">
+ <xsl:call-template name="doctype-system">
+ <xsl:with-param name="frameset" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="doctype-public" select="$doctype-public"/>
+ <xsl:with-param name="doctype-system" select="$doctype-system"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'frames', $html.ext)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="$title"/></title>
+ </head>
+ <frameset cols="{$toc.width},*" id="topframe">
+ <frame src="{concat('toc', $html.ext)}" name="toc" id="toc" frameborder="1"/>
+ <frame src="{$titlefoil.html}" name="foil" id="foil"/>
+ <noframes>
+ <body class="frameset">
+ <xsl:call-template name="body.attributes"/>
+ <a href="{concat('titleframe', $html.ext)}">
+ <xsl:text>Your browser doesn't support frames.</xsl:text>
+ </a>
+ </body>
+ </noframes>
+ </frameset>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'toc',$html.ext)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title>TOC - <xsl:value-of select="$title"/></title>
+ <xsl:call-template name="system.head.content"/>
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0
+ or $dynamic.toc != 0 or $active.toc != 0
+ or $overlay.logo != ''">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0' or $overlay.logo != ''">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$dynamic.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+function init() {
+ var width = </xsl:text>
+<xsl:value-of select="$toc.width"/>
+<xsl:text>, height = </xsl:text>
+<xsl:value-of select="$toc.row.height"/>
+<xsl:text>;
+ myList = new List(true, width, height, "</xsl:text>
+<xsl:value-of select="$toc.bg.color"/>
+<xsl:text>","</xsl:text>
+<xsl:call-template name="plus.image"/>
+<xsl:text>","</xsl:text>
+<xsl:call-template name="minus.image"/>
+<xsl:text>");
+</xsl:text>
+<xsl:apply-templates mode="ns-toc"/>
+ <xsl:text disable-output-escaping="yes">
+ myList.build(0,0);
+}
+ // --&gt;
+</xsl:text>
+ </script>
+ <style type="text/css">
+ <xsl:text>#spacer { position: absolute; height: </xsl:text>
+ <xsl:value-of select="$toc.height"/>
+ <xsl:text>; }
+</xsl:text>
+ </style>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <body class="toc">
+ <xsl:call-template name="body.attributes"/>
+
+ <xsl:if test="$overlay.logo != ''">
+ <xsl:attribute name="onload">
+ <xsl:text>overlaySetup('ll');</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="$dynamic.toc != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>init(</xsl:text>
+ <xsl:value-of select="$overlay"/>
+ <xsl:text>);</xsl:text>
+ <xsl:if test="$overlay.logo != ''">
+ <xsl:text>overlaySetup('ll');</xsl:text>
+ </xsl:if>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$dynamic.toc = 0">
+ <div class="toc">
+ <xsl:apply-templates mode="toc"/>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <div id="spacer"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="$overlay.logo != ''">
+ <div style="position: absolute; visibility: visible;" id="overlayDiv">
+ <img src="{$overlay.logo}" alt="logo" vspace="20"/>
+ </div>
+ </xsl:if>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="slidesinfo">
+ <xsl:variable name="next" select="(following::foil
+ |following::foilgroup)[1]"/>
+
+ <xsl:variable name="doctype-public">
+ <xsl:call-template name="doctype-public">
+ <xsl:with-param name="frameset" select="$multiframe"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="doctype-system">
+ <xsl:call-template name="doctype-system">
+ <xsl:with-param name="frameset" select="$multiframe"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="doctype-public" select="$doctype-public"/>
+ <xsl:with-param name="doctype-system" select="$doctype-system"/>
+ <xsl:with-param name="filename"
+ select="concat($base.dir,$titlefoil.html)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="title"/></title>
+
+ <xsl:call-template name="system.head.content">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0
+ or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </head>
+ <xsl:choose>
+ <xsl:when test="$multiframe != 0">
+ <xsl:apply-templates select="." mode="multiframe"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="singleframe"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:if test="$multiframe != 0">
+ <xsl:apply-templates select="." mode="multiframe-top"/>
+ <xsl:apply-templates select="." mode="multiframe-body"/>
+ <xsl:apply-templates select="." mode="multiframe-bottom"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="slidesinfo" mode="multiframe">
+ <xsl:variable name="thisfoil">
+ <xsl:value-of select="$titlefoil.html"/>
+ </xsl:variable>
+
+ <frameset rows="{$multiframe.navigation.height},*,{$multiframe.navigation.height}" id="foil">
+ <xsl:attribute name="onload">
+ <xsl:text>javascript:body.focus()</xsl:text>
+ </xsl:attribute>
+ <frame src="top-{$thisfoil}" name="top" id="top" marginheight="0" frameborder="0">
+ </frame>
+ <frame src="body-{$thisfoil}" name="body" id="body" marginheight="0" frameborder="0">
+ </frame>
+ <frame src="bot-{$thisfoil}" name="bottom" id="bottom" marginheight="0" frameborder="0">
+ </frame>
+ <noframes>
+ <body class="frameset">
+ <xsl:call-template name="body.attributes"/>
+ <p>
+ <xsl:text>Your browser doesn't support frames.</xsl:text>
+ </p>
+ </body>
+ </noframes>
+ </frameset>
+</xsl:template>
+
+<xsl:template match="slidesinfo" mode="multiframe-top">
+ <xsl:variable name="thisfoil">
+ <xsl:value-of select="$titlefoil.html"/>
+ </xsl:variable>
+
+ <xsl:variable name="next" select="(following::foil
+ |following::foilgroup)[1]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'top-',$thisfoil)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title>Navigation</title>
+
+ <xsl:call-template name="system.head.content">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0
+ or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0' or $overlay.logo != ''">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </head>
+ <body class="topnavigation" bgcolor="{$multiframe.top.bgcolor}">
+ <xsl:call-template name="foil-top-nav">
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="slidesinfo" mode="multiframe-body">
+ <xsl:variable name="thisfoil">
+ <xsl:value-of select="$titlefoil.html"/>
+ </xsl:variable>
+
+ <xsl:variable name="next" select="(following::foil
+ |following::foilgroup)[1]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'body-',$thisfoil)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title>Body</title>
+
+ <xsl:call-template name="system.head.content">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0
+ or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </head>
+ <xsl:apply-templates select="." mode="singleframe"/>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="slidesinfo" mode="multiframe-bottom">
+ <xsl:variable name="thisfoil">
+ <xsl:value-of select="$titlefoil.html"/>
+ </xsl:variable>
+
+ <xsl:variable name="next" select="(following::foil
+ |following::foilgroup)[1]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'bot-',$thisfoil)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title>Navigation</title>
+
+ <xsl:call-template name="system.head.content">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0
+ or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </head>
+ <body class="botnavigation" bgcolor="{$multiframe.bottom.bgcolor}">
+ <xsl:call-template name="foil-bottom-nav">
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="slidesinfo" mode="singleframe">
+ <xsl:param name="thisfoil">
+ <xsl:value-of select="$titlefoil.html"/>
+ </xsl:param>
+
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="next" select="(following::foil
+ |following::foilgroup)[1]"/>
+
+ <body class="titlepage">
+ <xsl:call-template name="body.attributes"/>
+ <xsl:choose>
+ <xsl:when test="$active.toc != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>newPage('</xsl:text>
+ <xsl:value-of select="$titlefoil.html"/>
+ <xsl:text>',</xsl:text>
+ <xsl:value-of select="$overlay"/>
+ <xsl:text>);</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$overlay != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>overlaySetup('lc');</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>this.focus()</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <div class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </div>
+
+ <xsl:if test="$multiframe=0">
+ <div id="overlayDiv" class="navfoot">
+ <xsl:choose>
+ <xsl:when test="$overlay != 0">
+ <xsl:attribute name="style">
+ <xsl:text>position:absolute;visibility:visible;</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style">
+ <xsl:text>padding-top: 2in;</xsl:text>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <table width="100%" border="0"
+ cellspacing="0" cellpadding="0"
+ summary="Navigation">
+ <tr>
+ <td align="left" width="80%" valign="top">
+ <span class="navfooter">
+ <!-- suppress copyright here; it's probably already on the titlepage
+ <xsl:apply-templates select="/slides/slidesinfo/copyright"
+ mode="slide.footer.mode"/>
+ -->
+ <xsl:text>&#160;</xsl:text>
+ </span>
+ </td>
+ <td align="right" width="20%" valign="top">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <img alt="{$text.next}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </xsl:if>
+ </body>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navhead">
+ <table border="0" width="100%" cellspacing="0" cellpadding="0"
+ summary="Navigation table">
+ <tr>
+ <td align="left" valign="bottom" width="10%">
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <xsl:if test="$multiframe != 0">
+ <xsl:attribute name="target">foil</xsl:attribute>
+ </xsl:if>
+ <img alt="{$text.prev}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">&#160;</span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ <td width="80%" align="center" valign="bottom">
+ <xsl:call-template name="foil.number"/>
+ </td>
+ <td align="right" valign="bottom" width="10%">
+ <xsl:choose>
+ <xsl:when test="$next">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <xsl:if test="$multiframe != 0">
+ <xsl:attribute name="target">foil</xsl:attribute>
+ </xsl:if>
+ <img alt="{$text.next}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">&#160;</span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ </tr>
+ </table>
+ <hr class="top-nav-sep"/>
+ </div>
+</xsl:template>
+
+<xsl:template name="bottom-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navfoot">
+ <hr class="bottom-nav-sep"/>
+ <table border="0" width="100%" cellspacing="0" cellpadding="0"
+ summary="Navigation table">
+ <tr>
+ <td align="left" valign="top">
+ <xsl:apply-templates select="/slides/slidesinfo/copyright"
+ mode="slide.footer.mode"/>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+
+ <td align="right" valign="top">
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <xsl:if test="$multiframe != 0">
+ <xsl:attribute name="target">foil</xsl:attribute>
+ </xsl:if>
+ <img alt="{$text.prev}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">&#160;</span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$next">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <xsl:if test="$multiframe != 0">
+ <xsl:attribute name="target">foil</xsl:attribute>
+ </xsl:if>
+ <img alt="{$text.next}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">&#160;</span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="foilgroup">
+ <xsl:param name="thisfoilgroup">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:param>
+
+ <xsl:variable name="doctype-public">
+ <xsl:call-template name="doctype-public">
+ <xsl:with-param name="frameset" select="$multiframe"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="doctype-system">
+ <xsl:call-template name="doctype-system">
+ <xsl:with-param name="frameset" select="$multiframe"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="foil[1]"/>
+ <xsl:variable name="prev" select="(preceding::foil|parent::foilgroup|/slides)[last()]"/>
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="doctype-public" select="$doctype-public"/>
+ <xsl:with-param name="doctype-system" select="$doctype-system"/>
+ <xsl:with-param name="filename" select="concat($base.dir,$thisfoilgroup)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="title"/></title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0
+ or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <xsl:choose>
+ <xsl:when test="$multiframe != 0">
+ <xsl:apply-templates select="." mode="multiframe"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="singleframe"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:if test="$multiframe != 0">
+ <xsl:apply-templates select="." mode="multiframe-top"/>
+ <xsl:apply-templates select="." mode="multiframe-body"/>
+ <xsl:apply-templates select="." mode="multiframe-bottom"/>
+ </xsl:if>
+
+ <xsl:apply-templates select="foil"/>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="multiframe">
+ <xsl:variable name="thisfoilgroup">
+ <xsl:text>foilgroup</xsl:text>
+ <xsl:number count="foilgroup" level="any" format="01"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:variable>
+
+ <frameset rows="{$multiframe.navigation.height},*,{$multiframe.navigation.height}" id="foil">
+ <xsl:attribute name="onload">
+ <xsl:text>javascript:body.focus()</xsl:text>
+ </xsl:attribute>
+ <frame src="top-{$thisfoilgroup}" name="top" id="top" marginheight="0" frameborder="0"/>
+ <frame src="body-{$thisfoilgroup}" name="body" id="body" marginheight="0" frameborder="0"/>
+ <frame src="bot-{$thisfoilgroup}" name="bottom" id="bottom" marginheight="0" frameborder="0"/>
+ <noframes>
+ <body class="frameset">
+ <xsl:call-template name="body.attributes"/>
+ <p>
+ <xsl:text>Your browser doesn't support frames.</xsl:text>
+ </p>
+ </body>
+ </noframes>
+ </frameset>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="multiframe-top">
+ <xsl:variable name="foilgroup">
+ <xsl:text>foilgroup</xsl:text>
+ <xsl:number count="foilgroup" level="any" format="01"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="foil[1]"/>
+ <xsl:variable name="prev" select="(preceding::foil|parent::foilgroup|/slides)[last()]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'top-',$foilgroup)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title>Navigation</title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0
+ or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <body class="topnavigation" bgcolor="{$multiframe.top.bgcolor}">
+ <xsl:call-template name="foilgroup-top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="multiframe-body">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="foil[1]"/>
+ <xsl:variable name="prev" select="(preceding::foil|parent::foilgroup|/slides)[last()]"/>
+
+ <xsl:variable name="thisfoilgroup">
+ <xsl:text>foilgroup</xsl:text>
+ <xsl:number count="foilgroup" level="any" format="01"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:variable>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'body-',$thisfoilgroup)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title>Body</title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0
+ or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <xsl:apply-templates select="." mode="singleframe"/>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="multiframe-bottom">
+ <xsl:variable name="thisfoilgroup">
+ <xsl:text>foilgroup</xsl:text>
+ <xsl:number count="foilgroup" level="any" format="01"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="foil[1]"/>
+ <xsl:variable name="prev" select="(preceding::foil|parent::foilgroup|/slides)[last()]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'bot-',$thisfoilgroup)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title>Navigation</title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0
+ or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <body class="botnavigation" bgcolor="{$multiframe.bottom.bgcolor}">
+ <xsl:call-template name="foilgroup-bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="singleframe">
+ <xsl:param name="thisfoilgroup">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:param>
+
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="foil[1]"/>
+ <xsl:variable name="prev" select="(preceding::foil|parent::foilgroup|/slides)[last()]"/>
+ <body class="foilgroup">
+ <xsl:call-template name="body.attributes"/>
+ <xsl:choose>
+ <xsl:when test="$active.toc != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>newPage('</xsl:text>
+ <xsl:value-of select="$thisfoilgroup"/>
+ <xsl:text>',</xsl:text>
+ <xsl:value-of select="$overlay"/>
+ <xsl:text>);</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$overlay != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>overlaySetup('lc');</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <div class="{name(.)}" id="{$id}">
+ <xsl:if test="$multiframe=0">
+ <xsl:call-template name="foilgroup-top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <div class="foilgroup-body" id="{$id}">
+ <xsl:call-template name="foilgroup-body">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </div>
+
+ <xsl:if test="$multiframe=0">
+ <div id="overlayDiv">
+ <xsl:if test="$overlay != 0">
+ <xsl:attribute name="style">
+ <xsl:text>position:absolute;visibility:visible;</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="foilgroup-bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </div>
+ </xsl:if>
+ </div>
+
+ <xsl:call-template name="process.footnotes"/>
+ </body>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="foil">
+ <xsl:variable name="thisfoil">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="(following::foil
+ |following::foilgroup)[1]"/>
+ <xsl:variable name="prev" select="(preceding-sibling::foil[1]
+ |parent::foilgroup[1]
+ |/slides)[last()]"/>
+
+ <xsl:variable name="doctype-public">
+ <xsl:call-template name="doctype-public">
+ <xsl:with-param name="frameset" select="$multiframe"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="doctype-system">
+ <xsl:call-template name="doctype-system">
+ <xsl:with-param name="frameset" select="$multiframe"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="doctype-public" select="$doctype-public"/>
+ <xsl:with-param name="doctype-system" select="$doctype-system"/>
+ <xsl:with-param name="filename" select="concat($base.dir,$thisfoil)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="title"/></title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0
+ or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <xsl:choose>
+ <xsl:when test="$multiframe != 0">
+ <xsl:apply-templates select="." mode="multiframe"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="singleframe"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:if test="$multiframe != 0">
+ <xsl:apply-templates select="." mode="multiframe-top"/>
+ <xsl:apply-templates select="." mode="multiframe-body"/>
+ <xsl:apply-templates select="." mode="multiframe-bottom"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="foil" mode="multiframe">
+ <xsl:variable name="foilgroup" select="ancestor::foilgroup"/>
+
+ <xsl:variable name="thisfoil">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:variable>
+
+ <frameset rows="{$multiframe.navigation.height},*,{$multiframe.navigation.height}" id="foil">
+ <xsl:attribute name="onload">
+ <xsl:text>javascript:body.focus()</xsl:text>
+ </xsl:attribute>
+ <frame src="top-{$thisfoil}" name="top" id="top" marginheight="0" frameborder="0">
+ </frame>
+ <frame src="body-{$thisfoil}" name="body" id="body" marginheight="0" frameborder="0">
+ </frame>
+ <frame src="bot-{$thisfoil}" name="bottom" id="bottom" marginheight="0" frameborder="0">
+ </frame>
+ <noframes>
+ <body class="frameset">
+ <xsl:call-template name="body.attributes"/>
+ <p>
+ <xsl:text>Your browser doesn't support frames.</xsl:text>
+ </p>
+ </body>
+ </noframes>
+ </frameset>
+</xsl:template>
+
+<xsl:template match="foil" mode="multiframe-top">
+ <xsl:variable name="thisfoil">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="(following::foil
+ |following::foilgroup)[1]"/>
+ <xsl:variable name="prev" select="(preceding-sibling::foil[1]
+ |parent::foilgroup[1]
+ |/slides)[last()]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'top-',$thisfoil)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title>Navigation</title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0
+ or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javajcript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <body class="topnavigation" bgcolor="{$multiframe.top.bgcolor}">
+ <xsl:call-template name="foil-top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foil" mode="multiframe-body">
+ <xsl:variable name="thisfoil">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:variable>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'body-',$thisfoil)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title>Body</title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0
+ or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="(following::foil
+ |following::foilgroup)[1]"/>
+ <xsl:variable name="prev" select="(preceding-sibling::foil[1]
+ |parent::foilgroup[1]
+ |/slides)[last()]"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+
+ </head>
+ <xsl:apply-templates select="." mode="singleframe"/>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foil" mode="multiframe-bottom">
+ <xsl:variable name="thisfoil">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="(following::foil
+ |following::foilgroup)[1]"/>
+ <xsl:variable name="prev" select="(preceding-sibling::foil[1]
+ |parent::foilgroup[1]
+ |/slides)[last()]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'bot-',$thisfoil)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title>Navigation</title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0
+ or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <body class="botnavigation" bgcolor="{$multiframe.bottom.bgcolor}">
+ <xsl:call-template name="foil-bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foil" mode="singleframe">
+ <xsl:param name="thisfoil">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:param>
+
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="(following::foil
+ |following::foilgroup)[1]"/>
+ <xsl:variable name="prev" select="(preceding-sibling::foil[1]
+ |parent::foilgroup[1]
+ |/slides)[last()]"/>
+
+ <body class="foil">
+ <xsl:call-template name="body.attributes"/>
+ <xsl:choose>
+ <xsl:when test="$active.toc != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>newPage('</xsl:text>
+ <xsl:value-of select="$thisfoil"/>
+ <xsl:text>',</xsl:text>
+ <xsl:value-of select="$overlay"/>
+ <xsl:text>);</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$overlay != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>overlaySetup('lc');</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <div class="{name(.)}" id="{$id}">
+ <xsl:if test="$multiframe=0">
+ <xsl:call-template name="foil-top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <div class="foil-body">
+ <xsl:apply-templates/>
+ </div>
+
+ <xsl:if test="$multiframe=0">
+ <div id="overlayDiv">
+ <xsl:if test="$overlay != 0">
+ <xsl:attribute name="style">
+ <xsl:text>position:absolute;visibility:visible;</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="foil-bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </div>
+ </xsl:if>
+ </div>
+
+ <xsl:call-template name="process.footnotes"/>
+ </body>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="slidesinfo" mode="toc">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+ <div id="{$id}" class="toc-slidesinfo">
+ <a href="{$titlefoil.html}" target="foil">
+ <xsl:choose>
+ <xsl:when test="titleabbrev">
+ <xsl:apply-templates select="titleabbrev" mode="toc"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="title" mode="toc"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ <hr/>
+ </div>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="toc">
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+ <xsl:variable name="thisfoilgroup">
+ <xsl:text>foilgroup</xsl:text>
+ <xsl:number count="foilgroup" level="any" format="01"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:variable>
+
+ <div class="toc-foilgroup" id="{$id}">
+ <img alt="-">
+ <xsl:attribute name="src">
+ <xsl:call-template name="minus.image"/>
+ </xsl:attribute>
+ </img>
+ <a href="{$thisfoilgroup}" target="foil">
+ <xsl:choose>
+ <xsl:when test="titleabbrev">
+ <xsl:apply-templates select="titleabbrev" mode="toc"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="title" mode="toc"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ <xsl:apply-templates select="foil" mode="toc"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="foil" mode="toc">
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+ <xsl:variable name="foil">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:variable>
+
+ <div id="{$id}" class="toc-foil">
+ <img alt="-">
+ <xsl:attribute name="src">
+ <xsl:call-template name="bullet.image"/>
+ </xsl:attribute>
+ </img>
+ <a href="{$foil}" target="foil">
+ <xsl:choose>
+ <xsl:when test="titleabbrev">
+ <xsl:apply-templates select="titleabbrev" mode="toc"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="title" mode="toc"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </div>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="slidesinfo" mode="ns-toc">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:text>myList.addItem('</xsl:text>
+
+ <xsl:text disable-output-escaping="yes">&lt;div id="</xsl:text>
+ <xsl:value-of select="$id"/>
+ <xsl:text disable-output-escaping="yes">" class="toc-slidesinfo"&gt;</xsl:text>
+
+ <xsl:text disable-output-escaping="yes">&lt;a href="</xsl:text>
+ <xsl:value-of select="$titlefoil.html"/>
+ <xsl:text disable-output-escaping="yes">" target="foil"&gt;</xsl:text>
+
+ <xsl:call-template name="string.subst">
+ <xsl:with-param name="string">
+ <xsl:choose>
+ <xsl:when test="titleabbrev">
+ <xsl:value-of select="titleabbrev"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="title"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="target">'</xsl:with-param>
+ <xsl:with-param name="replacement">\'</xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:text disable-output-escaping="yes">&lt;\/a&gt;&lt;\/div&gt;</xsl:text>
+ <xsl:text>');&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="ns-toc">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:text>subList = new List(false, width, height, "</xsl:text>
+<xsl:value-of select="$toc.bg.color"/>
+<xsl:text>");&#10;</xsl:text>
+ <xsl:text>subList.setIndent(12);&#10;</xsl:text>
+ <xsl:apply-templates select="foil" mode="ns-toc"/>
+
+ <xsl:text>myList.addList(subList, '</xsl:text>
+
+ <xsl:text disable-output-escaping="yes">&lt;div id="</xsl:text>
+ <xsl:value-of select="$id"/>
+ <xsl:text disable-output-escaping="yes">" class="toc-foilgroup"&gt;</xsl:text>
+
+ <xsl:text disable-output-escaping="yes">&lt;a href="</xsl:text>
+ <xsl:apply-templates select="." mode="filename"/>
+ <xsl:text disable-output-escaping="yes">" target="foil"&gt;</xsl:text>
+
+ <xsl:call-template name="string.subst">
+ <xsl:with-param name="string">
+ <xsl:choose>
+ <xsl:when test="titleabbrev">
+ <xsl:value-of select="titleabbrev"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="title"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="target">'</xsl:with-param>
+ <xsl:with-param name="replacement">\'</xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:text disable-output-escaping="yes">&lt;\/a&gt;&lt;\/div&gt;</xsl:text>
+ <xsl:text>');&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="foil" mode="ns-toc">
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="ancestor::foilgroup">
+ <xsl:text>subList.addItem('</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>myList.addItem('</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:text disable-output-escaping="yes">&lt;div id="</xsl:text>
+ <xsl:value-of select="$id"/>
+ <xsl:text disable-output-escaping="yes">" class="toc-foil"&gt;</xsl:text>
+
+ <xsl:text disable-output-escaping="yes">&lt;img alt="-" src="</xsl:text>
+ <xsl:call-template name="bullet.image"/>
+ <xsl:text disable-output-escaping="yes">"&gt;&lt;\/img&gt;</xsl:text>
+
+ <xsl:text disable-output-escaping="yes">&lt;a href="</xsl:text>
+ <xsl:apply-templates select="." mode="filename"/>
+ <xsl:text disable-output-escaping="yes">" target="foil"&gt;</xsl:text>
+
+ <xsl:call-template name="string.subst">
+ <xsl:with-param name="string">
+ <xsl:choose>
+ <xsl:when test="titleabbrev">
+ <xsl:value-of select="titleabbrev"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="title"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="target">'</xsl:with-param>
+ <xsl:with-param name="replacement">\'</xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:text disable-output-escaping="yes">&lt;\/a&gt;&lt;\/div&gt;</xsl:text>
+ <xsl:text>');&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="speakernotes" mode="ns-toc">
+ <!-- nop -->
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/graphics.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/graphics.xsl
new file mode 100644
index 0000000..b682acd
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/graphics.xsl
@@ -0,0 +1,151 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<!-- ====================================================================== -->
+
+<xsl:template name="graphics-file">
+ <xsl:param name="image" select="'bullet.gif'"/>
+
+ <xsl:variable name="source.graphics.dir">
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'graphics-dir'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$source.graphics.dir != ''">
+ <xsl:value-of select="$source.graphics.dir"/>
+ <xsl:text>/</xsl:text>
+ </xsl:when>
+ <xsl:when test="$graphics.dir != ''">
+ <xsl:value-of select="$graphics.dir"/>
+ <xsl:text>/</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>http://docbook.sourceforge.net/release/slides/graphics/</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:value-of select="$image"/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- active navigation images -->
+
+<xsl:template name="toc.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$toc.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="home.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$home.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="up.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$up.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="prev.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$prev.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="next.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$next.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- inactive navigation images -->
+
+<xsl:template name="no.toc.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$no.toc.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="no.home.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$no.home.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="no.up.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$no.up.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="no.prev.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$no.prev.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="no.next.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$no.next.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- icon images -->
+
+<xsl:template name="bullet.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$bullet.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="plus.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$plus.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="minus.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$minus.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- hide/show ToC images -->
+
+<xsl:template name="hidetoc.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$hidetoc.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="showtoc.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$showtoc.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/jscript.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/jscript.xsl
new file mode 100644
index 0000000..ae4ef9f
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/jscript.xsl
@@ -0,0 +1,127 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<xsl:output method="html"/>
+
+<xsl:template name="script-dir">
+ <xsl:variable name="source.script.dir">
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'script-dir'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$source.script.dir != ''">
+ <xsl:value-of select="$source.script.dir"/>
+ <xsl:text>/</xsl:text>
+ </xsl:when>
+ <xsl:when test="$script.dir != ''">
+ <xsl:value-of select="$script.dir"/>
+ <xsl:text>/</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>http://docbook.sourceforge.net/release/slides/browser/</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="script-file">
+ <xsl:param name="js" select="'slides.js'"/>
+ <xsl:call-template name="script-dir"/>
+ <xsl:value-of select="$js"/>
+</xsl:template>
+
+<xsl:template name="ua.js">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:param name="language" select="'javascript'"/>
+ <script type="text/javascript" language="{$language}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="script-file">
+ <xsl:with-param name="js" select="$ua.js"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text> </xsl:text>
+ </script>
+</xsl:template>
+
+<xsl:template name="xbDOM.js">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:param name="language" select="'javascript'"/>
+ <script type="text/javascript" language="{$language}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="script-file">
+ <xsl:with-param name="js" select="$xbDOM.js"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text> </xsl:text>
+ </script>
+</xsl:template>
+
+<xsl:template name="xbStyle.js">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:param name="language" select="'javascript'"/>
+ <script type="text/javascript" language="{$language}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="script-file">
+ <xsl:with-param name="js" select="$xbStyle.js"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text> </xsl:text>
+ </script>
+</xsl:template>
+
+<xsl:template name="xbLibrary.js">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:param name="language" select="'javascript'"/>
+ <script type="text/javascript" language="{$language}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="script-file">
+ <xsl:with-param name="js" select="$xbLibrary.js"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text> </xsl:text>
+ </script>
+</xsl:template>
+
+<xsl:template name="xbCollapsibleLists.js">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:param name="language" select="'javascript'"/>
+ <script type="text/javascript" language="{$language}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="script-file">
+ <xsl:with-param name="js" select="$xbCollapsibleLists.js"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text> </xsl:text>
+ </script>
+</xsl:template>
+
+<xsl:template name="overlay.js">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:param name="language" select="'javascript'"/>
+ <script type="text/javascript" language="{$language}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="script-file">
+ <xsl:with-param name="js" select="$overlay.js"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text> </xsl:text>
+ </script>
+</xsl:template>
+
+<xsl:template name="slides.js">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:param name="language" select="'javascript'"/>
+ <script type="text/javascript" language="{$language}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="script-file">
+ <xsl:with-param name="js" select="$slides.js"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text> </xsl:text>
+ </script>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/param.xml b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/param.xml
new file mode 100644
index 0000000..84cf196
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/param.xml
@@ -0,0 +1,1376 @@
+<?xml version="1.0" encoding="ASCII"?>
+<book version="5.0" xml:id="slides">
+<info>
+<title>Slides HTML Parameter Reference</title>
+<releaseinfo role="meta">
+$Id: param.xweb 6633 2007-02-21 18:33:33Z xmldoc $
+</releaseinfo>
+<author>
+ <personname>
+ <surname>Walsh</surname>
+ <firstname>Norman</firstname>
+ </personname>
+</author>
+<copyright>
+ <year>2002</year>
+ <holder>Norman Walsh</holder>
+</copyright>
+<abstract>
+ <para>This is reference documentation for all user-configurable
+ parameters in the DocBook XSL Slides HTML stylesheet (for
+ generating HTML slide presentations). Note that the Slides
+ stylesheet for HTML output is a customization layer of the
+ DocBook XSL HTML stylesheet. Therefore, in addition to the
+ slides-specific parameters listed in this section, you can
+ also use a number of <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../html/">HTML
+ stylesheet parameters</link> to control Slides HTML
+ output.</para>
+</abstract>
+</info>
+<reference xml:id="html">
+<title>HTML: General Parameters</title>
+<refentry version="5.0" xml:id="keyboard.nav">
+<refmeta>
+<refentrytitle>keyboard.nav</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>keyboard.nav</refname>
+<refpurpose>Enable keyboard navigation?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="keyboard.nav.frag">
+&lt;xsl:param name="keyboard.nav" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, JavaScript is added to the slides to enable keyboard
+navigation. Pressing 'n', space, or return moves forward; pressing 'p' moves
+backward.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="css.stylesheet">
+<refmeta>
+<refentrytitle>css.stylesheet</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>css.stylesheet</refname>
+<refpurpose>CSS stylesheet for slides</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="css.stylesheet.frag">
+&lt;xsl:param name="css.stylesheet"&gt;slides.css&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Identifies the CSS stylesheet used by all the slides. This parameter
+can be set in the source document with the &lt;?dbhtml?&gt; pseudo-attribute
+<literal>css-stylesheet</literal>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="css.stylesheet.dir">
+<refmeta>
+<refentrytitle>css.stylesheet.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>css.stylesheet.dir</refname>
+<refpurpose>Default directory for CSS stylesheets</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="css.stylesheet.dir.frag">
+&lt;xsl:param name="css.stylesheet.dir"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Identifies the default directory for the CSS stylesheet
+generated on all the slides. This parameter can be set in the source
+document with the &lt;?dbhtml?&gt; pseudo-attribute
+<literal>css-stylesheet-dir</literal>.</para>
+
+<para>If non-empty, this value is prepended to each of the stylesheets.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="titlefoil.html">
+<refmeta>
+<refentrytitle>titlefoil.html</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>titlefoil.html</refname>
+<refpurpose>Name of title foil HTML file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="titlefoil.html.frag">
+&lt;xsl:param name="titlefoil.html" select="concat('index', $html.ext)"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the filename used for the slides titlepage.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.html">
+<refmeta>
+<refentrytitle>toc.html</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.html</refname>
+<refpurpose>Name of ToC HTML file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.html.frag">
+&lt;xsl:param name="toc.html" select="concat('toc', $html.ext)"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the filename used for the table of contents page.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="foilgroup.toc">
+<refmeta>
+<refentrytitle>foilgroup.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>foilgroup.toc</refname>
+<refpurpose>Put ToC on foilgroup pages?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="foilgroup.toc.frag">
+&lt;xsl:param name="foilgroup.toc" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a ToC will be placed on foilgroup pages (after any
+other content).
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="output.indent">
+<refmeta>
+<refentrytitle>output.indent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>output.indent</refname>
+<refpurpose>Indent output?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="output.indent.frag">
+&lt;xsl:param name="output.indent"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the setting of the <parameter>indent</parameter>
+parameter on the HTML slides. For more information, see the discussion
+of the <tag>xsl:output</tag> element in the XSLT specification.</para>
+<para>Select from <literal>yes</literal> or <literal>no</literal>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="overlay">
+<refmeta>
+<refentrytitle>overlay</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>overlay</refname>
+<refpurpose>Overlay footer navigation?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="overlay.frag">
+&lt;xsl:param name="overlay" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, JavaScript is added to the slides to make the
+bottom navigation appear at the bottom of each page. This option and
+<link linkend="multiframe">multiframe</link> are mutually exclusive.</para>
+
+<para>If this parameter is zero, the bottom navigation simply appears
+below the content of each slide.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="show.foil.number">
+<refmeta>
+<refentrytitle>show.foil.number</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>show.foil.number</refname>
+<refpurpose>Show foil number on each foil?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="show.foil.number.frag">
+&lt;xsl:param name="show.foil.number" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, on each slide there will be its number. Currently
+not supported in all output formats.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="frames">
+<title>HTML: Frames Parameters</title>
+<refentry version="5.0" xml:id="nav.separator">
+<refmeta>
+<refentrytitle>nav.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>nav.separator</refname>
+<refpurpose>Output separator between navigation and body?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="nav.separator.frag">
+&lt;xsl:param name="nav.separator" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a separator (<literal>&lt;HR&gt;</literal>) is
+added between the navigation links and the content of each slide.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.row.height">
+<refmeta>
+<refentrytitle>toc.row.height</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.row.height</refname>
+<refpurpose>Height of ToC rows in dynamic ToCs</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.row.height.frag">
+&lt;xsl:param name="toc.row.height"&gt;22&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies the height of each row in the table of
+contents. This is only applicable if a <link linkend="dynamic.toc">dynamic ToC</link> is used. You may want to
+adjust this parameter for optimal appearance with the font and image
+sizes selected by your <link linkend="css.stylesheet">CSS
+stylesheet</link>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.bg.color">
+<refmeta>
+<refentrytitle>toc.bg.color</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.bg.color</refname>
+<refpurpose>Background color for ToC frame</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.bg.color.frag">
+&lt;xsl:param name="toc.bg.color"&gt;#FFFFFF&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the background color used in the ToC frame.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="body.bg.color">
+<refmeta>
+<refentrytitle>body.bg.color</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.bg.color</refname>
+<refpurpose>Background color for body frame</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="body.bg.color.frag">
+&lt;xsl:param name="body.bg.color"&gt;#FFFFFF&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the background color used in the body column of
+tabular slides.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.width">
+<refmeta>
+<refentrytitle>toc.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.width</refname>
+<refpurpose>Width of ToC frame</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.width.frag">
+&lt;xsl:param name="toc.width"&gt;250&lt;/xsl:param&gt;
+&lt;!-- Presumably in pixels? --&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the width of the ToC frame in pixels.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.hide.show">
+<refmeta>
+<refentrytitle>toc.hide.show</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.hide.show</refname>
+<refpurpose>Enable hide/show button for ToC frame</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.hide.show.frag">
+&lt;xsl:param name="toc.hide.show" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, JavaScript (and an additional icon, see
+<link linkend="hidetoc.image">hidetoc.image</link> and
+<link linkend="hidetoc.image">showtoc.image</link>) is added to each slide
+to allow the ToC panel to be <quote>toggled</quote> on each panel.</para>
+
+<note><para>There is a bug in Mozilla 1.0 (at least as of CR3) that causes
+the browser to reload the titlepage when this feature is used.</para></note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="dynamic.toc">
+<refmeta>
+<refentrytitle>dynamic.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>dynamic.toc</refname>
+<refpurpose>Dynamic ToCs?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="dynamic.toc.frag">
+&lt;xsl:param name="dynamic.toc" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, JavaScript is used to make the ToC panel <quote>dynamic</quote>.
+In a dynamic ToC, each section in the ToC can be expanded and collapsed by
+clicking on the appropriate image.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="active.toc">
+<refmeta>
+<refentrytitle>active.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>active.toc</refname>
+<refpurpose>Active ToCs?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="active.toc.frag">
+&lt;xsl:param name="active.toc" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, JavaScript is used to keep the ToC and the current slide
+<quote>in sync</quote>. That is, each time the slide changes, the corresponding
+ToC entry will be underlined.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="overlay.logo">
+<refmeta>
+<refentrytitle>overlay.logo</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>overlay.logo</refname>
+<refpurpose>Logo to overlay on ToC frame</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="overlay.logo.frag">
+&lt;xsl:param name="overlay.logo"&gt;http://docbook.sourceforge.net/release/buttons/slides-1.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If this URI is non-empty, JavaScript is used to overlay the
+specified image on the ToC frame.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="multiframe">
+<refmeta>
+<refentrytitle>multiframe</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>multiframe</refname>
+<refpurpose>Use multiple frames for slide bodies?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="multiframe.frag">
+&lt;xsl:param name="multiframe" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, multiple frames are used for the body of each
+slide. This is one way of forcing the slide navigation elements to
+appear in constant locations. The other way is with <link linkend="overlay">overlays</link>. The <link linkend="overlay"><parameter>overlay</parameter></link> and
+<parameter>multiframe</parameter> parameters are mutually
+exclusive.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="multiframe.top.bgcolor">
+<refmeta>
+<refentrytitle>multiframe.top.bgcolor</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>multiframe.top.bgcolor</refname>
+<refpurpose>Background color for top navigation frame</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="multiframe.top.bgcolor.frag">
+&lt;xsl:param name="multiframe.top.bgcolor"&gt;white&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the background color of the top navigation frame when
+<link linkend="multiframe">multiframe</link> is enabled.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="multiframe.bottom.bgcolor">
+<refmeta>
+<refentrytitle>multiframe.bottom.bgcolor</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>multiframe.bottom.bgcolor</refname>
+<refpurpose>Background color for bottom navigation frame</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="multiframe.bottom.bgcolor.frag">
+&lt;xsl:param name="multiframe.bottom.bgcolor"&gt;white&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the background color of the bottom navigation frame when
+<link linkend="multiframe">multiframe</link> is enabled.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="multiframe.navigation.height">
+<refmeta>
+<refentrytitle>multiframe.navigation.height</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>multiframe.navigation.height</refname>
+<refpurpose>Height of navigation frames</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="multiframe.navigation.height.frag">
+&lt;xsl:param name="multiframe.navigation.height"&gt;40&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the height of the navigation frames in pixels when
+<link linkend="multiframe">multiframe</link> is enabled.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="graphics">
+<title>HTML: Graphics Parameters</title>
+<refentry version="5.0" xml:id="graphics.dir">
+<refmeta>
+<refentrytitle>graphics.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>graphics.dir</refname>
+<refpurpose>Graphics directory</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="graphics.dir.frag">
+&lt;xsl:param name="graphics.dir"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Identifies the graphics directory for the navigation components
+generated on all the slides. This parameter can be set in the source
+document with the &lt;?dbhtml?&gt; pseudo-attribute
+<literal>graphics-dir</literal>.</para>
+
+<para>If non-empty, this value is prepended to each of the graphic
+image paths.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="bullet.image">
+<refmeta>
+<refentrytitle>bullet.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bullet.image</refname>
+<refpurpose>Bullet image</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="bullet.image.frag">
+&lt;xsl:param name="bullet.image"&gt;toc/bullet.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the bullet image used for foils in the
+framed ToC.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="next.image">
+<refmeta>
+<refentrytitle>next.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>next.image</refname>
+<refpurpose>Right-arrow image</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="next.image.frag">
+&lt;xsl:param name="next.image"&gt;active/nav-next.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the right-pointing navigation arrow.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="prev.image">
+<refmeta>
+<refentrytitle>prev.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>prev.image</refname>
+<refpurpose>Left-arrow image</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="prev.image.frag">
+&lt;xsl:param name="prev.image"&gt;active/nav-prev.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the left-pointing navigation arrow.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="up.image">
+<refmeta>
+<refentrytitle>up.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>up.image</refname>
+<refpurpose>Up-arrow image</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="up.image.frag">
+&lt;xsl:param name="up.image"&gt;active/nav-up.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the upward-pointing navigation arrow.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="home.image">
+<refmeta>
+<refentrytitle>home.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>home.image</refname>
+<refpurpose>Home image</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="home.image.frag">
+&lt;xsl:param name="home.image"&gt;active/nav-home.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the home navigation icon.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.image">
+<refmeta>
+<refentrytitle>toc.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.image</refname>
+<refpurpose>ToC image</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.image.frag">
+&lt;xsl:param name="toc.image"&gt;active/nav-toc.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the ToC navigation icon.</para>
+
+</refsection>
+</refentry>
+
+
+<refentry version="5.0" xml:id="no.next.image">
+<refmeta>
+<refentrytitle>no.next.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>no.next.image</refname>
+<refpurpose>Inactive right-arrow image</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="no.next.image.frag">
+&lt;xsl:param name="no.next.image"&gt;inactive/nav-next.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the inactive right-pointing navigation arrow.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="no.prev.image">
+<refmeta>
+<refentrytitle>no.prev.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>no.prev.image</refname>
+<refpurpose>Inactive left-arrow image</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="no.prev.image.frag">
+&lt;xsl:param name="no.prev.image"&gt;inactive/nav-prev.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the inactive left-pointing navigation arrow.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="no.up.image">
+<refmeta>
+<refentrytitle>no.up.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>no.up.image</refname>
+<refpurpose>Inactive up-arrow image</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="no.up.image.frag">
+&lt;xsl:param name="no.up.image"&gt;inactive/nav-up.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the inactive upward-pointing navigation arrow.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="no.home.image">
+<refmeta>
+<refentrytitle>no.home.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>no.home.image</refname>
+<refpurpose>Inactive home image</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="no.home.image.frag">
+&lt;xsl:param name="no.home.image"&gt;inactive/nav-home.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the inactive home navigation icon.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="no.toc.image">
+<refmeta>
+<refentrytitle>no.toc.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>no.toc.image</refname>
+<refpurpose>Inactive ToC image</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="no.toc.image.frag">
+&lt;xsl:param name="no.toc.image"&gt;inactive/nav-toc.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the inactive ToC navigation icon.</para>
+
+</refsection>
+</refentry>
+
+
+<refentry version="5.0" xml:id="plus.image">
+<refmeta>
+<refentrytitle>plus.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>plus.image</refname>
+<refpurpose>Plus image</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="plus.image.frag">
+&lt;xsl:param name="plus.image"&gt;toc/closed.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the <quote>plus</quote> image; the image used in a
+<link linkend="dynamic.toc">dynamic ToC</link> to indicate that a section
+can be expanded.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="minus.image">
+<refmeta>
+<refentrytitle>minus.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>minus.image</refname>
+<refpurpose>Minus image</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="minus.image.frag">
+&lt;xsl:param name="minus.image"&gt;toc/open.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the <quote>minus</quote> image; the image used in a
+<link linkend="dynamic.toc">dynamic ToC</link> to indicate that a section
+can be collapsed.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="hidetoc.image">
+<refmeta>
+<refentrytitle>hidetoc.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>hidetoc.image</refname>
+<refpurpose>Hide ToC image</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="hidetoc.image.frag">
+&lt;xsl:param name="hidetoc.image"&gt;hidetoc.gif&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the <quote>hide ToC</quote> image. This is used
+when the <link linkend="toc.hide.show">ToC hide/show</link> parameter is
+enabled.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="showtoc.image">
+<refmeta>
+<refentrytitle>showtoc.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>showtoc.image</refname>
+<refpurpose>Show ToC image</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="showtoc.image.frag">
+&lt;xsl:param name="showtoc.image"&gt;showtoc.gif&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the <quote>show ToC</quote> image. This is used
+when the <link linkend="toc.hide.show">ToC hide/show</link> parameter is
+enabled.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="javascript">
+<title>HTML: JavaScript Parameters</title>
+<refentry version="5.0" xml:id="script.dir">
+<refmeta>
+<refentrytitle>script.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>script.dir</refname>
+<refpurpose>Script directory</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="script.dir.frag">
+&lt;xsl:param name="script.dir"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Identifies the JavaScript source directory for the slides.
+This parameter can be set in the source
+document with the &lt;?dbhtml?&gt; pseudo-attribute
+<literal>script-dir</literal>.</para>
+
+<para>If non-empty, this value is prepended to each of the JavaScript files.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="ua.js">
+<refmeta>
+<refentrytitle>ua.js</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ua.js</refname>
+<refpurpose>UA JavaScript file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="ua.js.frag">
+&lt;xsl:param name="ua.js"&gt;ua.js&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the UA JavaScript file. It's unlikely
+that you will ever need to change this parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="xbDOM.js">
+<refmeta>
+<refentrytitle>xbDOM.js</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xbDOM.js</refname>
+<refpurpose>xbDOM JavaScript file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="xbDOM.js.frag">
+&lt;xsl:param name="xbDOM.js"&gt;xbDOM.js&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the xbDOM JavaScript file. It's unlikely
+that you will ever need to change this parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="xbStyle.js">
+<refmeta>
+<refentrytitle>xbStyle.js</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xbStyle.js</refname>
+<refpurpose>xbStyle JavaScript file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="xbStyle.js.frag">
+&lt;xsl:param name="xbStyle.js"&gt;xbStyle.js&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the xbStyle JavaScript file. It's unlikely
+that you will ever need to change this parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="xbLibrary.js">
+<refmeta>
+<refentrytitle>xbLibrary.js</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xbLibrary.js</refname>
+<refpurpose>xbLibrary JavaScript file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="xbLibrary.js.frag">
+&lt;xsl:param name="xbLibrary.js"&gt;xbLibrary.js&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the xbLibrary JavaScript file. It's unlikely
+that you will ever need to change this parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="xbCollapsibleLists.js">
+<refmeta>
+<refentrytitle>xbCollapsibleLists.js</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xbCollapsibleLists.js</refname>
+<refpurpose>xbCollapsibleLists JavaScript file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="xbCollapsibleLists.js.frag">
+&lt;xsl:param name="xbCollapsibleLists.js"&gt;xbCollapsibleLists.js&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the xbCollapsibleLists JavaScript file. It's unlikely
+that you will ever need to change this parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="overlay.js">
+<refmeta>
+<refentrytitle>overlay.js</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>overlay.js</refname>
+<refpurpose>Overlay JavaScript file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="overlay.js.frag">
+&lt;xsl:param name="overlay.js"&gt;overlay.js&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the overlay JavaScript file. It's unlikely
+that you will ever need to change this parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="slides.js">
+<refmeta>
+<refentrytitle>slides.js</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>slides.js</refname>
+<refpurpose>Slides overlay file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="slides.js.frag">
+&lt;xsl:param name="slides.js"&gt;slides.js&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the slides JavaScript file. It's unlikely
+that you will ever need to change this parameter.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="l10n">
+<title>HTML: Localization Parameters</title>
+<refentry version="5.0" xml:id="text.home">
+<refmeta>
+<refentrytitle>text.home</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>text.home</refname>
+<refpurpose>Home</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="text.home.frag">
+&lt;xsl:param name="text.home"&gt;Home&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>FIXME:</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="text.toc">
+<refmeta>
+<refentrytitle>text.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>text.toc</refname>
+<refpurpose>FIXME:</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="text.toc.frag">
+&lt;xsl:param name="text.toc"&gt;ToC&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>FIXME:</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="text.prev">
+<refmeta>
+<refentrytitle>text.prev</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>text.prev</refname>
+<refpurpose>FIXME:</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="text.prev.frag">
+&lt;xsl:param name="text.prev"&gt;Prev&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>FIXME:</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="text.up">
+<refmeta>
+<refentrytitle>text.up</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>text.up</refname>
+<refpurpose>FIXME:</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="text.up.frag">
+&lt;xsl:param name="text.up"&gt;Up&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>FIXME:</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="text.next">
+<refmeta>
+<refentrytitle>text.next</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>text.next</refname>
+<refpurpose>FIXME:</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="text.next.frag">
+&lt;xsl:param name="text.next"&gt;Next&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>FIXME:</para>
+
+</refsection>
+</refentry>
+
+
+
+</reference>
+<appendix xml:id="styleheet"><title>The Stylesheet</title>
+
+<para>The <filename>param.xsl</filename> stylesheet is just a wrapper
+around all these parameters.</para>
+
+<programlisting xml:id="top">
+
+&lt;!-- This file is generated from param.xweb --&gt;
+
+&lt;xsl:stylesheet exclude-result-prefixes="src" version="1.0"&gt;
+
+&lt;!-- ********************************************************************
+ $Id: param.xweb 6633 2007-02-21 18:33:33Z xmldoc $
+ ********************************************************************
+
+ This file is part of the DocBook Slides Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** --&gt;
+
+&lt;src:fragref linkend="active.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="body.bg.color.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="bullet.image.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="css.stylesheet.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="css.stylesheet.dir.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="dynamic.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="foilgroup.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="graphics.dir.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="hidetoc.image.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="home.image.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="keyboard.nav.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="minus.image.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="multiframe.bottom.bgcolor.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="multiframe.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="multiframe.navigation.height.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="multiframe.top.bgcolor.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="nav.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="next.image.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="no.home.image.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="no.next.image.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="no.prev.image.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="no.toc.image.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="no.up.image.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="output.indent.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="overlay.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="overlay.js.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="overlay.logo.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="plus.image.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="prev.image.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="script.dir.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="show.foil.number.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="showtoc.image.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="slides.js.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="text.home.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="text.next.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="text.prev.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="text.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="text.up.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="titlefoil.html.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.bg.color.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.hide.show.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.html.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.image.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.row.height.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="ua.js.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="up.image.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="xbCollapsibleLists.js.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="xbDOM.js.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="xbStyle.js.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="xbLibrary.js.frag"&gt;&lt;/src:fragref&gt;
+
+&lt;/xsl:stylesheet&gt;
+</programlisting>
+
+</appendix>
+</book>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/param.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/param.xsl
new file mode 100644
index 0000000..7dad0bc
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/param.xsl
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!-- This file is generated from param.xweb -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!-- ********************************************************************
+ $Id: param.xweb 6633 2007-02-21 18:33:33Z xmldoc $
+ ********************************************************************
+
+ This file is part of the DocBook Slides Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<xsl:param name="active.toc" select="0"/>
+<xsl:param name="body.bg.color">#FFFFFF</xsl:param>
+<xsl:param name="bullet.image">toc/bullet.png</xsl:param>
+<xsl:param name="css.stylesheet">slides.css</xsl:param>
+<xsl:param name="css.stylesheet.dir"/>
+<xsl:param name="dynamic.toc" select="0"/>
+<xsl:param name="foilgroup.toc" select="1"/>
+<xsl:param name="graphics.dir"/>
+<xsl:param name="hidetoc.image">hidetoc.gif</xsl:param>
+<xsl:param name="home.image">active/nav-home.png</xsl:param>
+<xsl:param name="keyboard.nav" select="1"/>
+<xsl:param name="minus.image">toc/open.png</xsl:param>
+<xsl:param name="multiframe.bottom.bgcolor">white</xsl:param>
+<xsl:param name="multiframe" select="0"/>
+<xsl:param name="multiframe.navigation.height">40</xsl:param>
+<xsl:param name="multiframe.top.bgcolor">white</xsl:param>
+<xsl:param name="nav.separator" select="1"/>
+<xsl:param name="next.image">active/nav-next.png</xsl:param>
+<xsl:param name="no.home.image">inactive/nav-home.png</xsl:param>
+<xsl:param name="no.next.image">inactive/nav-next.png</xsl:param>
+<xsl:param name="no.prev.image">inactive/nav-prev.png</xsl:param>
+<xsl:param name="no.toc.image">inactive/nav-toc.png</xsl:param>
+<xsl:param name="no.up.image">inactive/nav-up.png</xsl:param>
+<xsl:param name="output.indent">no</xsl:param>
+<xsl:param name="overlay" select="0"/>
+<xsl:param name="overlay.js">overlay.js</xsl:param>
+<xsl:param name="overlay.logo">http://docbook.sourceforge.net/release/buttons/slides-1.png</xsl:param>
+<xsl:param name="plus.image">toc/closed.png</xsl:param>
+<xsl:param name="prev.image">active/nav-prev.png</xsl:param>
+<xsl:param name="script.dir"/>
+<xsl:param name="show.foil.number" select="0"/>
+<xsl:param name="showtoc.image">showtoc.gif</xsl:param>
+<xsl:param name="slides.js">slides.js</xsl:param>
+<xsl:param name="text.home">Home</xsl:param>
+<xsl:param name="text.next">Next</xsl:param>
+<xsl:param name="text.prev">Prev</xsl:param>
+<xsl:param name="text.toc">ToC</xsl:param>
+<xsl:param name="text.up">Up</xsl:param>
+<xsl:param name="titlefoil.html" select="concat('index', $html.ext)"/>
+<xsl:param name="toc.bg.color">#FFFFFF</xsl:param>
+<xsl:param name="toc.hide.show" select="0"/>
+<xsl:param name="toc.html" select="concat('toc', $html.ext)"/>
+<xsl:param name="toc.image">active/nav-toc.png</xsl:param>
+<xsl:param name="toc.row.height">22</xsl:param>
+<xsl:param name="toc.width">250</xsl:param>
+<!-- Presumably in pixels? -->
+<xsl:param name="ua.js">ua.js</xsl:param>
+<xsl:param name="up.image">active/nav-up.png</xsl:param>
+<xsl:param name="xbCollapsibleLists.js">xbCollapsibleLists.js</xsl:param>
+<xsl:param name="xbDOM.js">xbDOM.js</xsl:param>
+<xsl:param name="xbStyle.js">xbStyle.js</xsl:param>
+<xsl:param name="xbLibrary.js">xbLibrary.js</xsl:param>
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/plain.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/plain.xsl
new file mode 100644
index 0000000..47224da
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/plain.xsl
@@ -0,0 +1,472 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<xsl:import href="slides-common.xsl"/>
+
+<xsl:param name="prev.image" select="'active/nav-prev.png'"/>
+<xsl:param name="next.image" select="'active/nav-next.png'"/>
+<xsl:param name="up.image" select="'active/nav-up.png'"/>
+<xsl:param name="toc.image" select="'active/nav-toc.png'"/>
+<xsl:param name="home.image" select="'active/nav-home.png'"/>
+
+<xsl:param name="no.prev.image" select="'inactive/nav-prev.png'"/>
+<xsl:param name="no.next.image" select="'inactive/nav-next.png'"/>
+<xsl:param name="no.up.image" select="'inactive/nav-up.png'"/>
+<xsl:param name="no.toc.image" select="'inactive/nav-toc.png'"/>
+<xsl:param name="no.home.image" select="'inactive/nav-home.png'"/>
+
+<xsl:param name="css.stylesheet" select="'slides-plain.css'"/>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="top-nav">
+ <xsl:param name="prev"/>
+ <xsl:param name="next"/>
+ <xsl:param name="up"/>
+ <xsl:param name="home"/>
+ <xsl:param name="toc" select="$toc.html"/>
+
+ <div class="navhead">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0"
+ summary="Navigation">
+ <tr>
+ <td align="left" width="45%">
+ <span class="slidestitle">
+ <xsl:value-of select="(/slides/slidesinfo/title)[1]"/>
+ </span>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ <td width="10%" align="center" valign="bottom">
+ <xsl:call-template name="foil.number"/>
+ </td>
+ <td align="right" width="45%">
+ <xsl:choose>
+ <xsl:when test="$home">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$home" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$home/slidesinfo/title"/>
+ </xsl:attribute>
+ <img alt="Home" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="home.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Home" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.home.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$toc != ''">
+ <a title="ToC" href="{$toc}">
+ <img alt="ToC" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="toc.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="ToC" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.toc.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$prev/title"/>
+ </xsl:attribute>
+ <img alt="Prev" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Prev" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.prev.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$up">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$up" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$up/title"/>
+ </xsl:attribute>
+ <img alt="Up" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="up.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Up" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.up.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$next">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$next/title"/>
+ </xsl:attribute>
+ <img alt="Next" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Next" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.next.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ </tr>
+ </table>
+ <hr class="top-nav-sep"/>
+ </div>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="titlepage-top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="next"/>
+ <xsl:param name="toc" select="$toc.html"/>
+
+ <div class="navhead">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0"
+ summary="Navigation">
+ <tr>
+ <td align="left" width="50%">
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ <td align="right" width="50%">
+ <xsl:choose>
+ <xsl:when test="$home">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$home" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$home/slidesinfo/title"/>
+ </xsl:attribute>
+ <img alt="Home" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="home.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Home" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.home.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$toc.html != ''">
+ <a title="ToC" href="{$toc.html}">
+ <img alt="ToC" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="toc.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="ToC" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.toc.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$prev/title"/>
+ </xsl:attribute>
+ <img alt="Prev" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Prev" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.prev.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$up">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$up" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$up/title"/>
+ </xsl:attribute>
+ <img alt="Up" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="up.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Up" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.up.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$next">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$next/title"/>
+ </xsl:attribute>
+ <img alt="Next" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Next" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.next.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ </tr>
+ </table>
+ <hr class="top-nav-sep"/>
+ </div>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="toc-top-nav">
+ <xsl:param name="home" select="/slides"/>
+ <xsl:param name="up"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="next" select="(foil|foilgroup)[1]"/>
+ <xsl:param name="toc"/>
+
+ <div class="navhead">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0"
+ summary="Navigation">
+ <tr>
+ <td align="left" width="50%">
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ <td align="right" width="50%">
+ <xsl:choose>
+ <xsl:when test="$home">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$home" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$home/slidesinfo/title"/>
+ </xsl:attribute>
+ <img alt="Home" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="home.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Home" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.home.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$toc != ''">
+ <a title="ToC" href="{$toc}">
+ <img alt="ToC" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="toc.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="ToC" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.toc.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$prev/title"/>
+ </xsl:attribute>
+ <img alt="Prev" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Prev" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.prev.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$up">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$up" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$up/title"/>
+ </xsl:attribute>
+ <img alt="Up" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="up.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Up" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.up.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$next">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$next/title"/>
+ </xsl:attribute>
+ <img alt="Next" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Next" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.next.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ </tr>
+ </table>
+ <hr class="top-nav-sep"/>
+ </div>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="bottom-nav"/>
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/slides-common.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/slides-common.xsl
new file mode 100644
index 0000000..9854164
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/slides-common.xsl
@@ -0,0 +1,1541 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<xsl:import href="../../html/chunk.xsl"/>
+<xsl:include href="../../VERSION"/>
+
+<xsl:include href="param.xsl"/>
+<xsl:include href="jscript.xsl"/>
+<xsl:include href="graphics.xsl"/>
+<xsl:include href="css.xsl"/>
+
+<xsl:output method="html"/>
+
+<xsl:strip-space elements="slides foil foilgroup"/>
+
+<!-- Process the slides -->
+
+<xsl:template match="/">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="slides">
+ <xsl:apply-templates select="." mode="toc"/>
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- Every slide has top and bottom navigation -->
+
+<xsl:template name="top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navhead">
+ <table border="0" width="100%" cellspacing="0" cellpadding="0"
+ summary="Navigation table">
+ <tr>
+ <td align="left" valign="bottom">
+ <xsl:if test="$home">
+ <span class="slidestitle">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$home" mode="filename"/>
+ </xsl:attribute>
+ <xsl:value-of select="($home/title|$home/slidesinfo/title)[1]"/>
+ </a>
+ </span>
+ </xsl:if>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+
+ <td align="right" valign="bottom">
+ <xsl:choose>
+ <xsl:when test="$home">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$home" mode="filename"/>
+ </xsl:attribute>
+ <img alt="{$text.home}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="home.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">
+ <img alt="{$text.home}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.home.image"/>
+ </xsl:attribute>
+ </img>
+ </span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$tocfile">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:value-of select="$tocfile"/>
+ </xsl:attribute>
+ <img alt="{$text.toc}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="toc.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">
+ <img alt="{$text.toc}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.toc.image"/>
+ </xsl:attribute>
+ </img>
+ </span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <img alt="{$text.prev}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">
+ <img alt="{$text.prev}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.prev.image"/>
+ </xsl:attribute>
+ </img>
+ </span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$up">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$up" mode="filename"/>
+ </xsl:attribute>
+ <img alt="{$text.up}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="up.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">
+ <img alt="{$text.up}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.up.image"/>
+ </xsl:attribute>
+ </img>
+ </span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$next">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <img alt="{$text.next}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">
+ <img alt="{$text.next}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.next.image"/>
+ </xsl:attribute>
+ </img>
+ </span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ </tr>
+ </table>
+ <hr class="top-nav-sep"/>
+ </div>
+</xsl:template>
+
+<xsl:template name="bottom-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navfoot">
+ <hr class="bottom-nav-sep"/>
+ <table border="0" width="100%" cellspacing="0" cellpadding="0"
+ summary="Navigation table">
+ <tr>
+ <td align="left" valign="top">
+ <xsl:apply-templates select="/slides/slidesinfo/copyright"
+ mode="slide.footer.mode"/>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+
+ <td align="right" valign="top">
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <img alt="{$text.prev}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">
+ <img alt="{$text.prev}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.prev.image"/>
+ </xsl:attribute>
+ </img>
+ </span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$next">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <img alt="{$text.next}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">
+ <img alt="{$text.next}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.next.image"/>
+ </xsl:attribute>
+ </img>
+ </span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<!-- Navigation is also provided in the form of links in the head -->
+
+<xsl:template name="links">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <xsl:if test="$tocfile != ''">
+ <link rel="contents" href="{$tocfile}">
+ <xsl:attribute name="title">
+ <xsl:value-of select="/slides/slidesinfo/title"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+
+ <xsl:if test="$home">
+ <link rel="top">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$home" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="($home/title|$home/slidesinfo/title)[1]"/>
+ </xsl:attribute>
+ </link>
+
+ <link rel="first">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$home" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="($home/title|$home/slidesinfo/title)[1]"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+
+ <xsl:if test="$up">
+ <link rel="up">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$up" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="($up/title|$up/slidesinfo/title)[1]"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+
+ <xsl:if test="$prev">
+ <link rel="previous">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="($prev/title|$prev/slidesinfo/title)[1]"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+
+ <xsl:if test="$next">
+ <link rel="next">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$next/title"/>
+ </xsl:attribute>
+ </link>
+
+ <xsl:variable name="last" select="$next/following::foil[last()]"/>
+ <xsl:if test="$last">
+ <link rel="last">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$last" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$last/title"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ </xsl:if>
+
+ <xsl:for-each select="foil">
+ <link rel="slides">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="title[1]"/>
+ </xsl:attribute>
+ </link>
+ </xsl:for-each>
+
+ <xsl:for-each select="foilgroup|../foilgroup">
+ <link rel="section">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="title[1]"/>
+ </xsl:attribute>
+ </link>
+ </xsl:for-each>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- There are four kinds of slides: titlepage, toc, foil, and foilgroup -->
+<!-- titlepage -->
+
+<xsl:template match="slidesinfo">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="next" select="(/slides/foil|/slides/foilgroup)[1]"/>
+ <xsl:variable name="tocfile" select="$toc.html"/>
+ <xsl:variable name="dir">
+ <xsl:call-template name="dbhtml-dir"/>
+ </xsl:variable>
+
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir, $dir, $titlefoil.html)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="title"/></title>
+
+ <xsl:call-template name="system.head.content">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <!-- Links -->
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="home" select="/slides"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="tocfile" select="$tocfile"/>
+ </xsl:call-template>
+
+ <!-- Scripts -->
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </head>
+ <body>
+ <xsl:attribute name="class">
+ <xsl:text>titlepage</xsl:text>
+ <xsl:if test="@role">
+ <xsl:text>-</xsl:text>
+ <xsl:value-of select="@role"/>
+ </xsl:if>
+ </xsl:attribute>
+
+ <xsl:call-template name="body.attributes"/>
+ <xsl:if test="$overlay != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>overlaySetup('lc')</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <div class="titlepage" id="{$id}">
+ <xsl:call-template name="titlepage-top-nav">
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="tocfile" select="$tocfile"/>
+ </xsl:call-template>
+
+ <div class="titlepage-body">
+ <xsl:call-template name="titlepage-body"/>
+ </div>
+
+ <div id="overlayDiv">
+ <xsl:call-template name="overlayDiv.attributes"/>
+ <xsl:call-template name="titlepage-bottom-nav">
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="tocfile" select="$tocfile"/>
+ </xsl:call-template>
+ </div>
+ </div>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="titlepage-body">
+ <div class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </div>
+</xsl:template>
+
+<xsl:template name="titlepage-top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <xsl:call-template name="top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="tocfile" select="$tocfile"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="titlepage-bottom-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <xsl:call-template name="bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="tocfile" select="$tocfile"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="slidesinfo/title">
+ <h1 class="{name(.)}"><xsl:apply-templates/></h1>
+</xsl:template>
+
+<xsl:template match="slidesinfo/authorgroup">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="slidesinfo/author|slidesinfo/authorgroup/author">
+ <h1 class="{name(.)}"><xsl:apply-imports/></h1>
+</xsl:template>
+
+<xsl:template match="slidesinfo/releaseinfo">
+ <h4 class="{name(.)}"><xsl:apply-templates/></h4>
+</xsl:template>
+
+<xsl:template match="slidesinfo/date">
+ <h4 class="{name(.)}"><xsl:apply-templates/></h4>
+</xsl:template>
+
+<xsl:template match="slidesinfo/copyright">
+ <!-- nop -->
+</xsl:template>
+
+<!-- On slides, output the credits explicitly each time -->
+<xsl:template match="othercredit" mode="titlepage.mode">
+ <xsl:variable name="contrib" select="string(contrib)"/>
+ <xsl:choose>
+ <xsl:when test="contrib">
+ <xsl:call-template name="paragraph">
+ <xsl:with-param name="class" select="name(.)"/>
+ <xsl:with-param name="content">
+ <xsl:apply-templates mode="titlepage.mode" select="contrib"/>
+ <xsl:text>: </xsl:text>
+ <xsl:call-template name="person.name"/>
+ <xsl:apply-templates mode="titlepage.mode" select="./affiliation"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="paragraph">
+ <xsl:with-param name="class" select="name(.)"/>
+ <xsl:with-param name="content">
+ <xsl:call-template name="person.name"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:apply-templates mode="titlepage.mode" select="./affiliation"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- toc -->
+
+<xsl:template match="slides" mode="toc">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="/slides"/>
+ <xsl:variable name="next" select="(foil|foilgroup)[1]"/>
+ <xsl:variable name="tocfile" select="''"/>
+ <xsl:variable name="dir"> <!-- MJ: added -->
+ <xsl:call-template name="dbhtml-dir"/>
+ </xsl:variable>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir, $dir, $toc.html)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="slidesinfo/title"/></title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <!-- Links -->
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="tocfile" select="$tocfile"/>
+ </xsl:call-template>
+
+ <!-- Scripts -->
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+
+ <body class="tocpage">
+ <xsl:call-template name="body.attributes"/>
+ <xsl:if test="$overlay != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>overlaySetup('lc')</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <div id="{$id}">
+ <xsl:call-template name="toc-top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="tocfile" select="$tocfile"/>
+ </xsl:call-template>
+
+ <div class="toc-body">
+ <xsl:call-template name="toc-body"/>
+ </div>
+
+ <div id="overlayDiv">
+ <xsl:call-template name="overlayDiv.attributes"/>
+ <xsl:call-template name="toc-bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="tocfile" select="$tocfile"/>
+ </xsl:call-template>
+ </div>
+ </div>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="toc-body">
+ <h1 class="title">
+ <a href="{$titlefoil.html}">
+ <xsl:value-of select="/slides/slidesinfo/title"/>
+ </a>
+ </h1>
+
+ <p class="toctitle">
+ <b>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key">TableofContents</xsl:with-param>
+ </xsl:call-template>
+ </b>
+ </p>
+ <dl class="toc">
+ <xsl:apply-templates select="foilgroup|foil" mode="toc"/>
+ </dl>
+</xsl:template>
+
+<xsl:template name="toc-top-nav">
+ <xsl:param name="home" select="/slides"/>
+ <xsl:param name="up"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="next" select="(foil|foilgroup)[1]"/>
+ <xsl:param name="tocfile"/>
+
+ <xsl:call-template name="top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="tocfile" select="$tocfile"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="toc-bottom-nav">
+ <xsl:param name="home" select="/slides"/>
+ <xsl:param name="up"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="next" select="(foil|foilgroup)[1]"/>
+ <xsl:param name="tocfile"/>
+
+ <xsl:call-template name="bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="tocfile" select="$tocfile"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="toc">
+ <xsl:param name="recursive" select="1"/>
+
+ <dt>
+ <xsl:apply-templates select="." mode="number"/>
+ <xsl:text>. </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:attribute>
+ <xsl:value-of select="title"/>
+ </a>
+ </dt>
+ <xsl:if test="$recursive != 0">
+ <dd>
+ <dl class="toc">
+ <xsl:apply-templates select="foil" mode="toc"/>
+ </dl>
+ </dd>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="foil" mode="toc">
+ <dt>
+ <xsl:apply-templates select="." mode="number"/>
+ <xsl:text>. </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:attribute>
+ <xsl:value-of select="title"/>
+ </a>
+ </dt>
+</xsl:template>
+
+<xsl:template match="title|titleabbrev" mode="toc">
+ <xsl:apply-templates mode="toc"/>
+</xsl:template>
+
+<xsl:template match="speakernotes" mode="toc">
+ <!-- nop -->
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- foil -->
+
+<xsl:template match="foil">
+ <xsl:param name="thisfoil">
+ <xsl:apply-templates select="." mode="chunk-filename"/>
+ </xsl:param>
+
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="(following::foil
+ |following::foilgroup)[1]"/>
+ <xsl:variable name="prev" select="(preceding-sibling::foil[1]
+ |parent::foilgroup[1]
+ |/slides)[last()]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir, $thisfoil)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="title"/></title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <!-- Links -->
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+
+ <!-- Scripts -->
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <body>
+ <xsl:attribute name="class">
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:if test="@role">
+ <xsl:text>-</xsl:text>
+ <xsl:value-of select="@role"/>
+ </xsl:if>
+ </xsl:attribute>
+
+ <xsl:call-template name="body.attributes"/>
+ <xsl:if test="$overlay != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>overlaySetup('lc')</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <div class="{name(.)}" id="{$id}">
+ <xsl:call-template name="foil-top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+
+ <div class="foil-body">
+ <xsl:call-template name="foil-body">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </div>
+
+ <div id="overlayDiv">
+ <xsl:call-template name="overlayDiv.attributes"/>
+ <xsl:call-template name="foil-bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </div>
+ </div>
+
+ <xsl:call-template name="process.footnotes"/>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="foil-body">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template name="foil-top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <xsl:call-template name="top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="foil-bottom-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <xsl:call-template name="bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foil/title">
+ <h1 class="{name(.)}">
+ <xsl:apply-templates/>
+ </h1>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- foilgroup -->
+
+<xsl:template match="foilgroup">
+ <xsl:param name="thisfoilgroup">
+ <xsl:apply-templates select="." mode="chunk-filename"/>
+ </xsl:param>
+
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="foil[1]"/>
+ <xsl:variable name="prev" select="(preceding::foil|parent::foilgroup|/slides)[last()]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir, $thisfoilgroup)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="title"/></title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <!-- Links -->
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+
+ <!-- Scripts -->
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <body>
+ <xsl:attribute name="class">
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:if test="@role">
+ <xsl:text>-</xsl:text>
+ <xsl:value-of select="@role"/>
+ </xsl:if>
+ </xsl:attribute>
+
+ <xsl:call-template name="body.attributes"/>
+ <xsl:if test="$overlay != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>overlaySetup('lc')</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <div class="{name(.)}" id="{$id}">
+ <xsl:call-template name="foilgroup-top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+
+ <!-- n.b. the foilgroup-body template is responsible for generating -->
+ <!-- the foilgroup toc -->
+ <div class="foilgroup-body">
+ <xsl:call-template name="foilgroup-body">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </div>
+
+ <div id="overlayDiv">
+ <xsl:call-template name="overlayDiv.attributes"/>
+ <xsl:call-template name="foilgroup-bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </div>
+ </div>
+
+ <xsl:call-template name="process.footnotes"/>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:apply-templates select="foil"/>
+</xsl:template>
+
+<xsl:template match="foilgroup/title">
+ <h1 class="{name(.)}"><xsl:apply-templates/></h1>
+</xsl:template>
+
+<xsl:template name="foilgroup-body">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <xsl:apply-templates select="*[name(.) != 'foil'
+ and name(.) != 'foilgroup']"/>
+
+ <xsl:if test="$foilgroup.toc != 0">
+ <dl class="toc">
+ <xsl:apply-templates select="foil" mode="toc"/>
+ </dl>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="foilgroup-top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <xsl:call-template name="top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="foilgroup-bottom-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <xsl:call-template name="bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="overlayDiv.attributes">
+ <xsl:choose>
+ <xsl:when test="$overlay != 0">
+ <xsl:attribute name="style">
+ <xsl:text>position: absolute; visibility: visible;</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style">padding-top: 2in;</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="processing-instruction('dbhtml')" mode="css.pi">
+ <xsl:variable name="href">
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="."/>
+ <xsl:with-param name="attribute" select="'css-stylesheet'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="$href!=''">
+ <xsl:choose>
+ <xsl:when test="$href = ''">
+ <!-- nop -->
+ </xsl:when>
+ <xsl:when test="contains($href, '//')">
+ <link type="text/css" rel="stylesheet" href="{$href}"/>
+ </xsl:when>
+ <xsl:when test="starts-with($href, '/')">
+ <link type="text/css" rel="stylesheet" href="{$href}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css-file">
+ <xsl:with-param name="css" select="$href"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </link>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="foil" mode="number">
+ <xsl:number count="foil|foilgroup" level="any"/>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="number">
+ <xsl:number count="foil|foilgroup" level="any"/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="slides" mode="filename">
+ <xsl:value-of select="$titlefoil.html"/>
+</xsl:template>
+
+<xsl:template match="foil" mode="filename">
+ <xsl:text>foil</xsl:text>
+ <xsl:number count="foil" level="any" format="01"/>
+ <xsl:value-of select="$html.ext"/>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="filename">
+ <xsl:text>foilgroup</xsl:text>
+ <xsl:number count="foilgroup" level="any" format="01"/>
+ <xsl:value-of select="$html.ext"/>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="processing-instruction('Pub')">
+ <xsl:variable name="pidata"><xsl:value-of select="(.)"/></xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($pidata,'UDT')"></xsl:when>
+ <xsl:when test="contains($pidata,'/_font')">
+ <xsl:text disable-output-escaping="yes">&lt;/span&gt;</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($pidata,'_font')">
+ <xsl:text disable-output-escaping="yes">&lt;span </xsl:text>
+ <xsl:choose>
+ <xsl:when test="contains($pidata,'green')">class="green"</xsl:when>
+ <xsl:when test="contains($pidata,'blue')">class="blue"</xsl:when>
+ <xsl:when test="contains($pidata,'orange')">class="orange"</xsl:when>
+ <xsl:when test="contains($pidata,'red')">class="red"</xsl:when>
+ <xsl:when test="contains($pidata,'brown')">class="brown"</xsl:when>
+ <xsl:when test="contains($pidata,'violet')">class="violet"</xsl:when>
+ <xsl:when test="contains($pidata,'black')">class="black"</xsl:when>
+ <xsl:otherwise>class="bold"</xsl:otherwise>
+ </xsl:choose>
+ <xsl:text disable-output-escaping="yes">&gt;</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+<!-- blocks -->
+
+<xsl:template match="figure">
+ <div class="{name(.)}">
+ <xsl:apply-imports/>
+ </div>
+ <xsl:if test="following-sibling::*"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template match="copyright" mode="slide.footer.mode">
+ <span class="{name(.)}">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Copyright'"/>
+ </xsl:call-template>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat">copyright</xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:call-template name="copyright.years">
+ <xsl:with-param name="years" select="year"/>
+ <xsl:with-param name="print.ranges" select="$make.year.ranges"/>
+ <xsl:with-param name="single.year.ranges"
+ select="$make.single.year.ranges"/>
+ </xsl:call-template>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:apply-templates select="holder" mode="titlepage.mode"/>
+ </span>
+</xsl:template>
+
+<!-- ============================================================ -->
+<!-- inlines -->
+
+<xsl:template match="link">
+ <xsl:call-template name="link">
+ <xsl:with-param name="a.target" select="'foil'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="ulink">
+ <a>
+ <xsl:if test="@id">
+ <xsl:attribute name="name"><xsl:value-of select="@id"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
+ <xsl:if test="$ulink.target != ''">
+ <xsl:attribute name="target">
+ <xsl:value-of select="$ulink.target"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="count(child::node())=0">
+ <xsl:value-of select="@url"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ <xsl:if test="@role='show'">
+ <xsl:text> (</xsl:text>
+ <xsl:value-of select="@url"/>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+</xsl:template>
+
+<xsl:template match="title/ulink">
+ <a>
+ <xsl:if test="@id">
+ <xsl:attribute name="name"><xsl:value-of select="@id"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
+ <xsl:if test="$ulink.target != ''">
+ <xsl:attribute name="target">
+ <xsl:value-of select="$ulink.target"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="count(child::node())=0">
+ <xsl:value-of select="@url"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+</xsl:template>
+
+<xsl:template match="subtitle">
+ <h2 class="subtitle">
+ <xsl:apply-templates/>
+ </h2>
+</xsl:template>
+
+<xsl:template match="graphic">
+ <center>
+ <!-- can't this be done a better way? -->
+ <xsl:apply-imports/>
+ </center>
+</xsl:template>
+
+<xsl:template match="titleabbrev">
+ <!-- nop -->
+</xsl:template>
+
+<xsl:template match="speakernotes">
+ <!-- nop -->
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- Chunking for slides -->
+
+<xsl:template name="chunk">
+ <xsl:param name="node" select="."/>
+ <xsl:choose>
+ <xsl:when test="name($node)='slides'">1</xsl:when>
+ <xsl:when test="name($node)='foilgroup'">1</xsl:when>
+ <xsl:when test="name($node)='foil'">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="chunk-filename">
+ <xsl:param name="recursive">0</xsl:param>
+ <!-- returns the filename of a chunk -->
+ <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+ <xsl:variable name="filename">
+ <xsl:call-template name="pi.dbhtml_filename"/>
+ </xsl:variable>
+ <xsl:variable name="dir">
+ <xsl:call-template name="dbhtml-dir"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$ischunk='0'">
+ <!-- if called on something that isn't a chunk, walk up... -->
+ <xsl:choose>
+ <xsl:when test="count(./parent::*)>0">
+ <xsl:apply-templates mode="chunk-filename" select="./parent::*">
+ <xsl:with-param name="recursive" select="$recursive"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <!-- unless there is no up, in which case return "" -->
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:when test="not($recursive) and $filename != ''">
+ <!-- if this chunk has an explicit name, use it -->
+ <xsl:if test="$dir != ''">
+ <xsl:value-of select="$dir"/>
+ <xsl:text>/</xsl:text>
+ </xsl:if>
+ <xsl:value-of select="$filename"/>
+ </xsl:when>
+
+ <xsl:when test="name(.)='foil'">
+ <xsl:variable name="foilnumber">
+ <xsl:number count="foil" level="any"/>
+ </xsl:variable>
+
+ <xsl:value-of select="$dir"/>
+ <xsl:text>foil</xsl:text>
+ <xsl:number value="$foilnumber" format="01"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:when>
+
+ <xsl:when test="name(.)='foilgroup'">
+ <xsl:variable name="foilgroupnumber">
+ <xsl:number count="foilgroup" level="any" format="01"/>
+ </xsl:variable>
+
+ <xsl:value-of select="$dir"/>
+ <xsl:text>foilgroup</xsl:text>
+ <xsl:number value="$foilgroupnumber" format="01"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:text>chunk-filename-error-</xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:number level="any" format="01" from="set"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- Handling of xrefs -->
+
+<xsl:template match="foil|foilgroup" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+
+ <xsl:apply-templates select="." mode="object.xref.markup">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="@*" mode="copy">
+ <xsl:attribute name="{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+</xsl:template>
+
+<xsl:template match="html:*" xmlns:html='http://www.w3.org/1999/xhtml'>
+ <xsl:element name="{local-name(.)}" namespace="">
+ <xsl:apply-templates select="@*" mode="copy"/>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="foil.number">
+ <xsl:choose>
+ <xsl:when test="$show.foil.number != 0 and self::foil">
+ <xsl:number count="foil" level="any"/>
+ /
+ <xsl:value-of select="count(//foil)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ &#160;
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/tables.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/tables.xsl
new file mode 100644
index 0000000..0462528
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/tables.xsl
@@ -0,0 +1,336 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<xsl:import href="slides-common.xsl"/>
+
+<xsl:param name="blank.image" select="'blank.png'"/>
+<xsl:param name="arrow.image" select="'pointer.png'"/>
+
+<xsl:param name="toc.bg.color">#6A719C</xsl:param>
+<xsl:param name="toc.width">220</xsl:param>
+
+<xsl:param name="css.stylesheet" select="'slides-table.css'"/>
+
+<!-- ============================================================ -->
+
+<xsl:template name="foilgroup-body">
+ <table border="0" width="100%" summary="Navigation and body table"
+ cellpadding="0" cellspacing="0">
+ <tr>
+ <td width="{$toc.width}" valign="top" align="left">
+ <xsl:if test="$toc.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$toc.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+ <div class="ttoc">
+ <xsl:apply-templates select="." mode="t-toc"/>
+ </div>
+ </td>
+ <td>&#160;</td>
+ <td valign="top" align="left">
+ <xsl:if test="$body.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$body.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+ <div class="{name(.)}">
+ <xsl:apply-templates select="*[name(.) != 'foil'
+ and name(.) != 'foilgroup']"/>
+ </div>
+
+ <xsl:if test="$foilgroup.toc != 0">
+ <dl class="toc">
+ <xsl:apply-templates select="foil" mode="toc"/>
+ </dl>
+ </xsl:if>
+ </td>
+ </tr>
+ </table>
+</xsl:template>
+
+<xsl:template name="foil-body">
+ <table border="0" width="100%" summary="Navigation and body table"
+ cellpadding="0" cellspacing="0">
+ <tr>
+ <td width="{$toc.width}" valign="top" align="left">
+ <xsl:if test="$toc.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$toc.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+ <div class="ttoc">
+ <xsl:apply-templates select="." mode="t-toc"/>
+ </div>
+ </td>
+ <td>&#160;</td>
+ <td valign="top" align="left">
+ <xsl:if test="$body.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$body.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+ <div class="{name(.)}">
+ <xsl:apply-templates/>
+ </div>
+ </td>
+ </tr>
+ </table>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="foilgroup" mode="t-toc">
+ <xsl:variable name="thisfoilgroup" select="."/>
+
+ <xsl:for-each select="/slides/foil|/slides/foilgroup">
+ <xsl:choose>
+ <xsl:when test="name(.) = 'foilgroup'">
+ <xsl:choose>
+ <xsl:when test="$thisfoilgroup = .">
+ <img alt="+">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$arrow.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt=" ">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$blank.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <span class="ttoc-foilgroup">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="toc-title"/>
+ </a>
+ </span>
+ <br/>
+
+ <xsl:if test="$thisfoilgroup = .">
+ <xsl:for-each select="foil">
+ <img alt=" ">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$blank.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ <img alt=" ">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$blank.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+
+ <span class="ttoc-foil">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="toc-title"/>
+ </a>
+ </span>
+ <br/>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt=" ">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$blank.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ <span class="ttoc-foil">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="toc-title"/>
+ </a>
+ </span>
+ <br/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="foil" mode="t-toc">
+ <xsl:variable name="thisfoil" select="."/>
+
+ <xsl:for-each select="/slides/foil|/slides/foilgroup">
+ <xsl:choose>
+ <xsl:when test="name(.) = 'foilgroup'">
+ <img alt=" ">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$blank.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ <span class="ttoc-foilgroup">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="toc-title"/>
+ </a>
+ </span>
+ <br/>
+
+ <xsl:if test="$thisfoil/ancestor::foilgroup = .">
+ <xsl:for-each select="foil">
+ <img alt=" ">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$blank.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+
+ <xsl:choose>
+ <xsl:when test="$thisfoil = .">
+ <img alt="+">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$arrow.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt=" ">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$blank.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <span class="ttoc-foil">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="toc-title"/>
+ </a>
+ </span>
+ <br/>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- foils only -->
+ <xsl:for-each select="/slides/foil">
+ <xsl:choose>
+ <xsl:when test="$thisfoil = .">
+ <img alt="+">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$arrow.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt=" ">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$blank.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <span class="ttoc-foil">
+ <xsl:apply-templates select="." mode="toc-title"/>
+ </span>
+ <br/>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="slides" mode="toc-title">
+ <xsl:call-template name="nobreak">
+ <xsl:with-param name="string">
+ <xsl:choose>
+ <xsl:when test="slidesinfo/titleabbrev">
+ <xsl:value-of select="slidesinfo/titleabbrev"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="slidesinfo/title"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="toc-title">
+ <xsl:call-template name="nobreak">
+ <xsl:with-param name="string">
+ <xsl:choose>
+ <xsl:when test="titleabbrev">
+ <xsl:value-of select="titleabbrev"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="title"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foil" mode="toc-title">
+ <xsl:call-template name="nobreak">
+ <xsl:with-param name="string">
+ <xsl:choose>
+ <xsl:when test="titleabbrev">
+ <xsl:value-of select="titleabbrev"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="title"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="nobreak">
+ <xsl:param name="string" select="''"/>
+ <xsl:choose>
+ <xsl:when test="contains($string, ' ')">
+ <xsl:value-of select="substring-before($string, ' ')"/>
+ <xsl:text>&#160;</xsl:text>
+ <xsl:call-template name="nobreak">
+ <xsl:with-param name="string" select="substring-after($string, ' ')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$string"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/vslides.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/vslides.xsl
new file mode 100644
index 0000000..f490099
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/vslides.xsl
@@ -0,0 +1,667 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<xsl:import href="slides-common.xsl"/>
+
+<xsl:param name="but-fforward.png" select="'active/but-fforward.png'"/>
+<xsl:param name="but-info.png" select="'active/but-info.png'"/>
+<xsl:param name="but-next.png" select="'active/but-next.png'"/>
+<xsl:param name="but-prev.png" select="'active/but-prev.png'"/>
+<xsl:param name="but-rewind.png" select="'active/but-rewind.png'"/>
+
+<xsl:param name="but-xfforward.png" select="'inactive/but-fforward.png'"/>
+<xsl:param name="but-xinfo.png" select="'inactive/but-info.png'"/>
+<xsl:param name="but-xnext.png" select="'inactive/but-next.png'"/>
+<xsl:param name="but-xprev.png" select="'inactive/but-prev.png'"/>
+<xsl:param name="but-xrewind.png" select="'inactive/but-rewind.png'"/>
+
+<!-- overrides for this stylesheet -->
+<xsl:param name="titlefoil.html" select="concat('index', $html.ext)"/>
+<xsl:param name="toc.width" select="40"/>
+
+<!-- ============================================================ -->
+
+<xsl:template match="slides">
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir, $toc.html)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="slidesinfo/title"/></title>
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="next" select="/slides"/>
+ <xsl:with-param name="tocfile" select="$toc.html"/>
+ </xsl:call-template>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('../browser');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+ </head>
+ <body class="tocpage">
+ <xsl:call-template name="body.attributes"/>
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <table border="0" width="100%" summary="Navigation and body table"
+ cellpadding="0" cellspacing="0">
+ <tr>
+ <td>&#160;</td>
+ <td><xsl:apply-templates select="." mode="header"/></td>
+ </tr>
+
+ <tr>
+ <td width="{$toc.width}" valign="top" align="left">
+ <xsl:if test="$toc.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$toc.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="vertical-navigation">
+ <xsl:with-param name="next" select="/slides"/>
+ <xsl:with-param name="tocfile"/>
+ </xsl:call-template>
+
+ </td>
+ <td valign="top" align="left">
+ <xsl:if test="$body.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$body.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <div class="{name(.)}">
+
+ <div class="toc-body">
+ <xsl:call-template name="toc-body"/>
+ </div>
+
+ </div>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&#160;</td>
+ <td><xsl:apply-templates select="." mode="footer"/></td>
+ </tr>
+ </table>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="slidesinfo">
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir, $titlefoil.html)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="title"/></title>
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="next" select="(/slides/foil|/slides/foilgroup)[1]"/>
+ <xsl:with-param name="tocfile" select="$toc.html"/>
+ </xsl:call-template>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('../browser');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+ </head>
+ <body class="titlepage">
+ <xsl:call-template name="body.attributes"/>
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <table border="0" width="100%" summary="Navigation and body table"
+ cellpadding="0" cellspacing="0">
+ <tr>
+ <td>&#160;</td>
+ <td><xsl:apply-templates select="." mode="header"/></td>
+ </tr>
+
+ <tr>
+ <td width="{$toc.width}" valign="top" align="left">
+ <xsl:if test="$toc.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$toc.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="vertical-navigation">
+ <xsl:with-param name="first"/>
+ <xsl:with-param name="last" select="(following::foilgroup|following::foil)[last()]"/>
+ <xsl:with-param name="next" select="(following::foilgroup|following::foil)[1]"/>
+ </xsl:call-template>
+
+ </td>
+ <td valign="top" align="left">
+ <xsl:if test="$body.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$body.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+ <div class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </div>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&#160;</td>
+ <td><xsl:apply-templates select="." mode="footer"/></td>
+ </tr>
+ </table>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foilgroup">
+ <xsl:param name="thisfoilgroup">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:param>
+
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="nextfoil" select="foil[1]"/>
+ <xsl:variable name="lastfoil" select="(descendant::foil|following::foil)[last()]"/>
+ <xsl:variable name="prevfoil" select="(preceding::foil|/slides)[last()]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir, $thisfoilgroup)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="title"/></title>
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="prev" select="$prevfoil"/>
+ <xsl:with-param name="next" select="$nextfoil"/>
+ </xsl:call-template>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('../browser');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+ </head>
+ <body class="foilgroup">
+ <xsl:call-template name="body.attributes"/>
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <table border="0" width="100%" summary="Navigation and body table"
+ cellpadding="0" cellspacing="0">
+ <tr>
+ <td>&#160;</td>
+ <td><xsl:apply-templates select="." mode="header"/></td>
+ </tr>
+
+ <tr>
+ <td width="{$toc.width}" valign="top" align="left">
+ <xsl:if test="$toc.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$toc.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="vertical-navigation">
+ <xsl:with-param name="last" select="$lastfoil"/>
+ <xsl:with-param name="prev" select="$prevfoil"/>
+ <xsl:with-param name="next" select="$nextfoil"/>
+ </xsl:call-template>
+
+ </td>
+ <td valign="top" align="left">
+ <xsl:if test="$body.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$body.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <div class="{name(.)}">
+ <xsl:apply-templates/>
+ </div>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&#160;</td>
+ <td><xsl:apply-templates select="." mode="footer"/></td>
+ </tr>
+ </table>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:apply-templates select="foil"/>
+</xsl:template>
+
+<xsl:template match="foil">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="foilgroup" select="ancestor::foilgroup"/>
+
+ <xsl:variable name="thisfoil">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:variable>
+
+ <xsl:variable name="nextfoil" select="(following::foil
+ |following::foilgroup)[1]"/>
+
+ <xsl:variable name="lastfoil" select="following::foil[last()]"/>
+
+ <xsl:variable name="prevfoil" select="(preceding-sibling::foil[1]
+ |parent::foilgroup[1]
+ |/slides)[last()]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir, $thisfoil)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="title"/></title>
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="prev" select="$prevfoil"/>
+ <xsl:with-param name="next" select="$nextfoil"/>
+ </xsl:call-template>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('../browser');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+ </head>
+ <body class="foil">
+ <xsl:call-template name="body.attributes"/>
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <table border="0" width="100%" summary="Navigation and body table"
+ cellpadding="0" cellspacing="0">
+ <tr>
+ <td>&#160;</td>
+ <td><xsl:apply-templates select="." mode="header"/></td>
+ </tr>
+
+ <tr>
+ <td width="{$toc.width}" valign="top" align="left">
+ <xsl:if test="$toc.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$toc.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="vertical-navigation">
+ <xsl:with-param name="last" select="$lastfoil"/>
+ <xsl:with-param name="prev" select="$prevfoil"/>
+ <xsl:with-param name="next" select="$nextfoil"/>
+ </xsl:call-template>
+
+ </td>
+ <td valign="top" align="left">
+ <xsl:if test="$body.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$body.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <div class="{name(.)}">
+ <xsl:apply-templates/>
+ </div>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&#160;</td>
+ <td><xsl:apply-templates select="." mode="footer"/></td>
+ </tr>
+ </table>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="slidesinfo" mode="header">
+ <div class="navhead">
+ <!-- nop -->
+ </div>
+</xsl:template>
+
+<xsl:template match="foil|foilgroup" mode="header">
+ <div class="navhead">
+ <table border="0" width="100%" summary="Header table"
+ cellpadding="0" cellspacing="0">
+ <tr>
+ <td align="left">
+ <xsl:apply-templates select="/slides/slidesinfo/title"
+ mode="slide.footer.mode"/>
+ </td>
+ <td align="right">
+ <xsl:value-of select="count(preceding::foil)
+ + count(preceding::foilgroup)
+ + count(ancestor::foilgroup)
+ + 1"/>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<xsl:template match="slidesinfo" mode="footer">
+ <div class="navfoot">
+ <!-- nop -->
+ </div>
+</xsl:template>
+
+<xsl:template match="foil|foilgroup" mode="footer">
+ <div class="navfoot">
+ <table border="0" width="100%" summary="Header table"
+ cellpadding="0" cellspacing="0">
+ <tr>
+ <td align="center">
+ <xsl:text>Slide </xsl:text>
+ <xsl:value-of select="count(preceding::foil)
+ + count(preceding::foilgroup)
+ + count(ancestor::foilgroup)
+ + 1"/>
+ <xsl:text> of </xsl:text>
+ <xsl:value-of select="count(//foil) + count(//foilgroup)"/>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<xsl:template match="slides" mode="footer"/>
+
+<!-- ============================================================ -->
+
+<xsl:template name="vertical-navigation">
+ <xsl:param name="first" select="/slides"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="last"/>
+ <xsl:param name="next"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="vnav">
+ <xsl:choose>
+ <xsl:when test="$first">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$first" mode="filename"/>
+ </xsl:attribute>
+ <img border="0" alt="First">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$but-rewind.png"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="First">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$but-xrewind.png"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <br/>
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <img border="0" alt="Previous">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$but-prev.png"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Previous">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$but-xprev.png"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <br/>
+ <xsl:choose>
+ <xsl:when test="$next">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <img border="0" alt="Last">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$but-next.png"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Last">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$but-xnext.png"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <br/>
+ <xsl:choose>
+ <xsl:when test="$last">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$last" mode="filename"/>
+ </xsl:attribute>
+ <img border="0" alt="Next">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$but-fforward.png"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Next">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$but-xfforward.png"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <br/>
+ <br/>
+
+ <xsl:choose>
+ <xsl:when test="$tocfile != ''">
+ <a href="{$tocfile}">
+ <img border="0" alt="ToC">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$but-info.png"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img border="0" alt="ToC">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$but-xinfo.png"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/w3c.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/w3c.xsl
new file mode 100644
index 0000000..5a5b420
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/html/w3c.xsl
@@ -0,0 +1,376 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<xsl:import href="slides-common.xsl"/>
+
+<xsl:param name="logo.image.uri" select="''"/>
+<xsl:param name="logo.uri" select="''"/>
+<xsl:param name="logo.title" select="''"/>
+
+<xsl:param name="next.image" select="'active/w3c-next.png'"/>
+<xsl:param name="no.next.image" select="'inactive/w3c-next.png'"/>
+
+<xsl:param name="prev.image" select="'active/w3c-prev.png'"/>
+<xsl:param name="no.prev.image" select="'inactive/w3c-prev.png'"/>
+
+<xsl:param name="toc.image" select="'active/w3c-toc.png'"/>
+<xsl:param name="no.toc.image" select="'inactive/w3c-toc.png'"/>
+
+<xsl:param name="css.stylesheet" select="'slides-w3c.css'"/>
+
+<xsl:template name="logo">
+ <xsl:if test="$logo.uri != ''">
+ <a href="{$logo.uri}" title="{$logo.title}">
+ <xsl:choose>
+ <xsl:when test="$logo.image.uri=''">
+ <xsl:value-of select="$logo.title"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <img src="{$logo.image.uri}" alt="{$logo.title}" border="0"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="overlayDiv.attributes">
+ <xsl:if test="$overlay != 0">
+ <xsl:attribute name="style">
+ <xsl:text>position: absolute; visibility: visible;</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navhead">
+ <table class="navbar" cellspacing="0" cellpadding="0" border="0" width="97%"
+ summary="Navigation buttons">
+ <tr>
+ <td align="left" valign="top">
+ <xsl:call-template name="logo"/>
+ </td>
+ <td valign="top" nowrap="nowrap" width="150">
+ <div align="right">
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <a rel="previous" accesskey="P">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <img border="0" width="32" height="32"
+ alt=" Previous" title="{$prev/title}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img border="0" width="32" height="32" alt=" Previous" title="">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.prev.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="$tocfile != ''">
+ <a rel="contents" href="{$tocfile}" accesskey="C">
+ <img border="0" width="32" height="32"
+ alt=" Contents" title="Table of Contents">
+ <xsl:attribute name="src">
+ <xsl:call-template name="toc.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img border="0" width="32" height="32"
+ alt=" Contents" title="Table of Contents">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.toc.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="$next">
+ <a rel="next" accesskey="N">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <img border="0" width="32" height="32"
+ alt=" Next" title="{$next/title}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img border="0" width="32" height="32" alt=" Next" title="">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.next.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+ </td>
+ </tr>
+ </table>
+
+ <xsl:apply-templates select="title"/>
+ <hr class="top-nav-sep"/>
+ </div>
+</xsl:template>
+
+<xsl:template name="bottom-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navfoot">
+ <hr class="bottom-nav-sep"/>
+ <table class="footer" cellspacing="0" cellpadding="0" border="0" width="97%"
+ summary="footer">
+ <tr>
+ <td align="left" valign="top">
+ <xsl:variable name="author" select="(/slides/slidesinfo//author
+ |/slides/slidesinfo//editor)"/>
+ <xsl:for-each select="$author">
+ <xsl:choose>
+ <xsl:when test=".//email">
+ <a href="mailto:{.//email[1]}">
+ <xsl:call-template name="person.name"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="person.name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="position() &lt; last()">, </xsl:if>
+ </xsl:for-each>
+ </td>
+ <td align="right" valign="top">
+ <span class="index">
+ <xsl:value-of select="count(preceding::foil)
+ + count(preceding::foilgroup)
+ + count(ancestor::foilgroup)
+ + 1"/>
+ <xsl:text> of </xsl:text>
+ <xsl:value-of select="count(//foil|//foilgroup)"/>
+ </span>
+ </td>
+
+ <td valign="top" nowrap="nowrap" width="150">
+ <div align="right">
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <a rel="previous" accesskey="P">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <img border="0" width="32" height="32"
+ alt=" Previous" title="{$prev/title}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img border="0" width="32" height="32" alt=" Prev" title="">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.prev.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="$next">
+ <a rel="next" accesskey="N">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <img border="0" width="32" height="32"
+ alt=" Next" title="{$next/title}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img border="0" width="32" height="32" alt=" Next" title="">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.next.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="titlepage-top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navhead">
+ <table class="navbar" cellspacing="0" cellpadding="0" border="0" width="97%"
+ summary="Navigation buttons">
+ <tr>
+ <td align="left" valign="top">
+ <xsl:call-template name="logo"/>
+ </td>
+ <td valign="top" nowrap="nowrap" width="150">
+ <div align="right">
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <a rel="previous" accesskey="P">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <img border="0" width="32" height="32"
+ alt=" Previous" title="{$prev/title}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img border="0" width="32" height="32" alt=" Previous" title="">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.prev.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="$tocfile != ''">
+ <a rel="contents" href="{$tocfile}" accesskey="C">
+ <img border="0" width="32" height="32"
+ alt=" Contents" title="Table of Contents">
+ <xsl:attribute name="src">
+ <xsl:call-template name="toc.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img border="0" width="32" height="32"
+ alt=" Contents" title="Table of Contents">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.toc.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="$next">
+ <a rel="next" accesskey="N">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <img border="0" width="32" height="32"
+ alt=" Next" title="{$next/title}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img border="0" width="32" height="32" alt=" Next" title="">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.next.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+ </td>
+ </tr>
+ </table>
+
+ <hr class="top-nav-sep"/>
+ </div>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="foil-body">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <!-- skip the title -->
+ <xsl:apply-templates select="*[name(.) != 'title']"/>
+</xsl:template>
+
+<xsl:template name="foilgroup-body">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <!-- skip the title -->
+ <xsl:apply-templates select="*[name(.) != 'title'
+ and name(.) != 'foil'
+ and name(.) != 'foilgroup']"/>
+
+ <xsl:if test="$foilgroup.toc != 0">
+ <dl class="toc">
+ <xsl:apply-templates select="foil" mode="toc"/>
+ </dl>
+ </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="@*" mode="copy">
+ <xsl:attribute name="{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+</xsl:template>
+
+<xsl:template match="html:*" xmlns:html='http://www.w3.org/1999/xhtml'>
+ <xsl:element name="{local-name(.)}" namespace="">
+ <xsl:apply-templates select="@*" mode="copy"/>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/htmlhelp/htmlhelp.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/htmlhelp/htmlhelp.xsl
new file mode 100644
index 0000000..4a6b370
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/htmlhelp/htmlhelp.xsl
@@ -0,0 +1,89 @@
+<?xml version="1.0"?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY lf '<xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&#xA;</xsl:text>'>
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:set="http://exslt.org/sets"
+ version="1.0"
+ exclude-result-prefixes="doc exsl set">
+
+<!-- ********************************************************************
+ $Id: htmlhelp.xsl 6569 2007-01-30 07:03:13Z xmldoc $
+ ********************************************************************
+
+ This stylesheet can convert DocBook Slides document type into HTML Help.
+
+ ******************************************************************** -->
+
+<xsl:import href="../html/plain.xsl"/>
+<xsl:include href="../../htmlhelp/htmlhelp-common.xsl"/>
+
+<xsl:param name="keyboard.nav" select="0"/>
+<xsl:param name="htmlhelp.default.topic" select="'index.html'"/>
+
+<xsl:template match="slides" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:apply-templates select="(slidesinfo/title|title)[1]"
+ mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="slides|foilgroup" mode="hhc">
+ <xsl:variable name="title">
+ <xsl:if test="$htmlhelp.autolabel=1">
+ <xsl:variable name="label.markup">
+ <xsl:apply-templates select="." mode="label.markup"/>
+ </xsl:variable>
+ <xsl:if test="normalize-space($label.markup)">
+ <xsl:value-of select="concat($label.markup,$autotoc.label.separator)"/>
+ </xsl:if>
+ </xsl:if>
+ <xsl:apply-templates select="." mode="title.markup"/>
+ </xsl:variable>
+
+ <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
+ <LI><OBJECT type="text/sitemap">&lf;
+ <param name="Name" value="{normalize-space($title)}"/>&lf;
+ <param name="Local">
+ <xsl:attribute name="value">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:attribute>
+ </param>
+ </OBJECT></LI>&lf;
+ </xsl:if>
+ <xsl:if test="foil|foilgroup">
+ <UL>&lf;
+ <xsl:apply-templates select="foil|foilgroup" mode="hhc"/>
+ </UL>&lf;
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="foil" mode="hhc">
+ <xsl:variable name="title">
+ <xsl:if test="$htmlhelp.autolabel=1">
+ <xsl:variable name="label.markup">
+ <xsl:apply-templates select="." mode="label.markup"/>
+ </xsl:variable>
+ <xsl:if test="normalize-space($label.markup)">
+ <xsl:value-of select="concat($label.markup,$autotoc.label.separator)"/>
+ </xsl:if>
+ </xsl:if>
+ <xsl:apply-templates select="." mode="title.markup"/>
+ </xsl:variable>
+
+ <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
+ <LI><OBJECT type="text/sitemap">&lf;
+ <param name="Name" value="{normalize-space($title)}"/>&lf;
+ <param name="Local">
+ <xsl:attribute name="value">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:attribute>
+ </param>
+ </OBJECT></LI>&lf;
+ </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/default.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/default.xsl
new file mode 100644
index 0000000..7ff90b1
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/default.xsl
@@ -0,0 +1,600 @@
+<xsl:stylesheet version='1.0'
+ xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
+ xmlns='http://developer.apple.com/schemas/APXL'
+ xmlns:apxl='http://developer.apple.com/schemas/APXL'
+ xmlns:plugin='http://developer.apple.com/schemas/APXLPlugins'
+ xmlns:doc='http://nwalsh.com/xsl/documentation/1.0'
+ xmlns:str='http://xsltsl.org/string'
+ xmlns:math='http://xsltsl.org/math'
+ exclude-result-prefixes='doc str math'>
+
+ <xsl:import href='xsltsl/stdlib.xsl'/>
+ <xsl:output method='xml' indent='yes' encoding='UTF-8'/>
+ <xsl:strip-space elements='*'/>
+
+ <doc:article xmlns=''>
+ <articleinfo>
+ <title>Keynote Slides</title>
+
+ <author>
+ <firstname>Steve</firstname>
+ <surname>Ball</surname>
+ <affiliation>
+ <orgname>Zveno</orgname>
+ <address>
+ <otheraddr>
+ <ulink url='http://www.zveno.com/'>zveno.com</ulink>
+ </otheraddr>
+ </address>
+ </affiliation>
+ </author>
+
+ <releaseinfo>$Id: default.xsl 3991 2004-11-10 06:51:55Z balls $</releaseinfo>
+
+ <copyright>
+ <year>2004</year>
+ <year>2003</year>
+ <holder>Steve Ball, Zveno Pty Ltd</holder>
+ </copyright>
+
+ <legalnotice>
+ <para>Zveno Pty Ltd makes this software and associated documentation available free of charge for any purpose. You may make copies of the software but you must include all of this notice on any copy.</para>
+ <para>Zveno Pty Ltd does not warrant that this software is error free or fit for any purpose. Zveno Pty Ltd disclaims any liability for all claims, expenses, losses, damages and costs any user may incur as a result of using, copying or modifying the software.</para>
+ </legalnotice>
+ </articleinfo>
+ </doc:article>
+
+ <xsl:param name='slides'/>
+
+ <xsl:variable name='slide-master' select='"Title &amp; Subtitle"'/>
+ <xsl:variable name='foilgroup-master' select='"Title - Center"'/>
+ <xsl:variable name='overview-master' select='"Title - Top"'/>
+ <xsl:variable name='bullet-master' select='"SmlTitle &amp; Bullets"'/>
+ <xsl:variable name='bullet-and-image-master' select='"Title &amp; Bullets - Left"'/>
+ <xsl:variable name='title-only-master' select='"SmlTitle"'/>
+
+ <xsl:variable name='masters' select='/apxl:presentation/apxl:theme/apxl:master-slides'/>
+
+ <xsl:template match='/'>
+ <xsl:choose>
+ <xsl:when test='$slides = ""'>
+ <xsl:message terminate='yes'>You must specify your slides document using the "slides" parameter</xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match='apxl:slide-list'>
+ <slide-list>
+ <xsl:apply-templates select='document($slides)' mode='slides'/>
+ </slide-list>
+ </xsl:template>
+
+ <xsl:template match='slides' mode='slides'>
+ <slide id='slide-1' master-slide-id="{$masters/apxl:master-slide[@name=$slide-master]/@id}">
+ <drawables>
+ <body visibility='tracks-master' vertical-alignment='tracks-master'/>
+ <title visibility='tracks-master' vertical-alignment='tracks-master'/>
+ </drawables>
+ <transition-style type='inherited'/>
+ <thumbnails>
+ <thumbnail file='thumbs/st0.tiff' byte-size='6520' size='60 45'/>
+ </thumbnails>
+ <bullets>
+ <bullet marker-type='inherited' level='0'>
+ <content tab-stops='L 96' font-size='84' font-color='g1' font-name='GillSans' paragraph-alignment='center'>
+ <xsl:apply-templates select='slidesinfo/title/node()'/>
+ </content>
+ </bullet>
+ <xsl:choose>
+ <xsl:when test='slidesinfo/subtitle'>
+ <bullet marker-type='inherited' level='1'>
+ <content tab-stops='L 96' font-size='36' font-color='g1' font-name='GillSans' paragraph-alignment='center'>
+ <xsl:apply-templates select='slidesinfo/subtitle/node()' mode='slides'/>
+ </content>
+ </bullet>
+ </xsl:when>
+ <xsl:when test='slidesinfo/corpauthor'>
+ <bullet marker-type='inherited' level='1'>
+ <content tab-stops='L 96' font-size='36' font-color='g1' font-name='GillSans' paragraph-alignment='center'>
+ <xsl:apply-templates select='slidesinfo/corpauthor/node()' mode='slides'/>
+ </content>
+ </bullet>
+ </xsl:when>
+ <xsl:when test='slidesinfo/author'>
+ <bullet marker-type='inherited' level='1'>
+ <content tab-stops='L 96' font-size='36' font-color='g1' font-name='GillSans' paragraph-alignment='center'>
+ <xsl:apply-templates select='slidesinfo/author' mode='slides'/>
+ </content>
+ </bullet>
+ </xsl:when>
+ </xsl:choose>
+ </bullets>
+ <notes font-size='18' font-name='LucidaGrande'>
+ <xsl:apply-templates select='slidesinfo/*[not(self::title|self::subtitle|self::corpauthor|self::author)]' mode='slides'/>
+ </notes>
+ </slide>
+
+ <xsl:if test='foilgroup'>
+ <xsl:call-template name='overview'/>
+ </xsl:if>
+
+ <xsl:apply-templates select='foilgroup|foil' mode='slides'/>
+ </xsl:template>
+
+ <xsl:template name='overview'>
+ <xsl:param name='current' select='/'/>
+
+ <slide id='overview-{generate-id()}' master-slide-id="{$masters/apxl:master-slide[@name=$overview-master]/@id}">
+ <drawables>
+ <body visibility='tracks-master' vertical-alignment='tracks-master'/>
+ <title visibility='tracks-master' vertical-alignment='tracks-master'/>
+
+ <xsl:for-each select='ancestor-or-self::slides/foilgroup'>
+ <textbox id='textbox-{position()}' grow-horizontally='true' transformation='1 0 0 1 {100 + floor((position() - 1) div 10) * 400} {200 + floor((position() - 1) mod 10) * 50}' size='200 50'>
+ <content tab-stops='L 84' font-size='36' paragraph-alignment='left'>
+ <xsl:attribute name='font-color'>
+ <xsl:choose>
+ <xsl:when test='generate-id() = generate-id($current)'>
+ <xsl:text>1 0.5 0</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>g1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:apply-templates select='title' mode='slides'/>
+ </content>
+ </textbox>
+ </xsl:for-each>
+
+ </drawables>
+ <transition-style type='inherited'/>
+ <thumbnails>
+ <thumbnail file='thumbs/st0.tiff' byte-size='6520' size='60 45'/>
+ </thumbnails>
+ <bullets>
+ <bullet marker-type='inherited' level='0'>
+ <content tab-stops='L 96' font-size='84' font-color='g1' font-name='GillSans' paragraph-alignment='center'>Overview</content>
+ </bullet>
+ </bullets>
+ </slide>
+ </xsl:template>
+
+ <xsl:template match='author' mode='slides'>
+ <xsl:apply-templates select='firstname/node()' mode='slides'/>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select='surname/node()' mode='slides'/>
+ </xsl:template>
+ <xsl:template match='copyright' mode='slides'>
+ <xsl:text>Copyright (c) </xsl:text>
+ <xsl:value-of select='year'/>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select='holder' mode='slides'/>
+ <xsl:text>. </xsl:text>
+ </xsl:template>
+
+ <xsl:template match='foilgroup' mode='slides'>
+ <xsl:variable name='number' select='count(preceding-sibling::foilgroup) + count(preceding::foil) + 1'/>
+
+ <xsl:call-template name='overview'>
+ <xsl:with-param name='current' select='.'/>
+ </xsl:call-template>
+
+ <slide id='foilgroup-{generate-id()}'>
+ <xsl:attribute name='master-slide-id'>
+ <xsl:choose>
+ <xsl:when test='*[not(self::foil|self::foilgroupinfo|self::speakernotes)]'>
+ <xsl:value-of select='$masters/apxl:master-slide[@name=$title-only-master]/@id'/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select='$masters/apxl:master-slide[@name=$foilgroup-master]/@id'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+
+ <drawables>
+ <title visibility='tracks-master' vertical-alignment='tracks-master'/>
+ <body visibility='hidden' vertical-alignment='tracks-master'/>
+ <xsl:call-template name='drawables'/>
+ </drawables>
+ <transition-style type='inherited'/>
+ <thumbnails>
+ <thumbnail file='thumbs/st0.tiff' byte-size='6520' size='60 45'/>
+ </thumbnails>
+ <bullets>
+ <bullet marker-type='inherited' level='0'>
+ <content tab-stops='L 96' font-size='84' font-color='g1' font-name='GillSans' paragraph-alignment='center'>
+ <xsl:apply-templates select='title' mode='slides'/>
+ </content>
+ </bullet>
+
+ <xsl:apply-templates select='itemizedlist/listitem' mode='slides'/>
+ </bullets>
+ <xsl:if test='speakernotes'>
+ <notes font-size='18' font-name='LucidaGrande'>
+ <xsl:apply-templates select='speakernotes/para[1]/node()' mode='slides'/>
+ <xsl:for-each select='speakernotes/para[position() != 1]'>
+ <xsl:text>; </xsl:text>
+ <xsl:apply-templates select='node()' mode='slides'/>
+ </xsl:for-each>
+ </notes>
+ </xsl:if>
+ </slide>
+
+ <xsl:apply-templates select='foil' mode='slides'/>
+
+ </xsl:template>
+
+ <xsl:template match='foil' mode='slides'>
+ <xsl:variable name='number' select='count(preceding::foilgroup) + count(preceding::foil) + count(preceding-sibling::foil) + 1'/>
+
+ <slide id='foil-{generate-id()}'>
+ <xsl:attribute name='master-slide-id'>
+ <xsl:choose>
+ <xsl:when test='imageobject'>
+ <xsl:value-of select='$masters/apxl:master-slide[@name=$title-only-master]/@id'/>
+ </xsl:when>
+ <xsl:when test='itemizedlist[.//imageobject]'>
+ <xsl:value-of select='$masters/apxl:master-slide[@name=$bullet-and-image-master]/@id'/>
+ </xsl:when>
+ <xsl:when test='itemizedlist'>
+ <xsl:value-of select='$masters/apxl:master-slide[@name=$bullet-master]/@id'/>
+ </xsl:when>
+ <xsl:when test='example|informalexample'>
+ <xsl:value-of select='$masters/apxl:master-slide[@name=$title-only-master]/@id'/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select='$masters/apxl:master-slide[@name=$bullet-master]/@id'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <drawables>
+ <body visibility='tracks-master' vertical-alignment='tracks-master'/>
+ <title visibility='tracks-master' vertical-alignment='tracks-master'/>
+ <xsl:call-template name='drawables'/>
+ </drawables>
+ <transition-style type='inherited'/>
+ <thumbnails>
+ <thumbnail file='thumbs/st0.tiff' byte-size='6520' size='60 45'/>
+ </thumbnails>
+ <bullets>
+ <bullet marker-type='inherited' level='0'>
+ <content tab-stops='L 96' font-size='64' font-color='g1' font-name='GillSans' paragraph-alignment='inherited'>
+ <!--
+ <xsl:apply-templates select='../title' mode='slides'/>
+ <xsl:text>: </xsl:text>
+-->
+ <xsl:apply-templates select='title' mode='slides'/>
+ </content>
+ </bullet>
+ <xsl:apply-templates select='itemizedlist/listitem' mode='slides'/>
+ </bullets>
+ <xsl:if test='speakernotes'>
+ <notes font-size='18' font-name='LucidaGrande'>
+ <xsl:apply-templates select='speakernotes/para[1]/node()' mode='slides'/>
+ <xsl:for-each select='speakernotes/para[position() != 1]'>
+ <xsl:text>; </xsl:text>
+ <xsl:apply-templates select='node()' mode='slides'/>
+ </xsl:for-each>
+ </notes>
+ </xsl:if>
+ </slide>
+ </xsl:template>
+
+ <doc:template xmlns=''>
+ <title>drawables Template</title>
+
+ <para>This template adds objects to the drawables section of a foil. These include images, as well as unadorned (non-bullet) text.</para>
+
+ <para>A single image is placed centered on the foil. An image on a foil that contains other text is placed on the right-hand-side.</para>
+ </doc:template>
+
+ <xsl:template name='drawables'>
+ <xsl:choose>
+ <xsl:when test='imageobject'>
+ <plugin opacity='1' transformation='1 0 0 1 140 130'>
+ <plugin-data>
+ <plugin:movie bundled='true' src='{imageobject/imagedata/@fileref}' key='root' width='740' height='560'/>
+ <string key='CPVersion'>1.0</string>
+ <string key='MIMEType'>video/quicktime</string>
+ </plugin-data>
+ <styles>
+ <shadow-style opacity='0' radius='0'/>
+ </styles>
+ </plugin>
+ </xsl:when>
+ <xsl:when test='false() and .//informaltable|.//table'>
+ <xsl:variable name='table' select='.//informaltable|.//table[1]'/>
+ <xsl:variable name='cells' select='$table/tgroup/*/row/entry'/>
+ <xsl:variable name='numrows' select='count($table/tgroup/*/row)'/>
+ <xsl:variable name='numcols' select='count($table/tgroup/*[1]/row[1]/entry)'/>
+ <xsl:variable name='identbase' select='count($table/preceding::node())'/>
+
+ <plugin transformation='1 0 0 1 200 200'>
+ <plugin-data>
+ <plugin:table key='root' version='1.2'>
+ <xsl:attribute name='size'>
+ <xsl:text>{800, 400}</xsl:text>
+ </xsl:attribute>
+
+ <dict/>
+ <xsl:for-each select='$cells'>
+ <plugin:element type='text' tr='5834' bl='5838' tl='5833' br='5839'>
+ <xsl:attribute name='tl'>
+ <xsl:value-of select='$identbase + (floor(position() div $numcols) * ($numcols + 1)) + (position() mod $numcols)'/>
+ </xsl:attribute>
+ <xsl:attribute name='tr'>
+ <xsl:value-of select='$identbase + (floor(position() div $numcols) * ($numcols + 1)) + (position() mod $numcols) + 1'/>
+ </xsl:attribute>
+ <xsl:attribute name='bl'>
+ <xsl:value-of select='$identbase + (floor(position() div $numcols) * ($numcols + 1) + 1) + (position() mod $numcols)'/>
+ </xsl:attribute>
+ <xsl:attribute name='br'>
+ <xsl:value-of select='$identbase + (floor(position() div $numcols) * ($numcols + 1) + 1) + (position() mod $numcols) + 1'/>
+ </xsl:attribute>
+ <plugin:node ident='5833'>
+ <xsl:attribute name='pos'>
+ <xsl:text>{0, 300}</xsl:text>
+ </xsl:attribute>
+ </plugin:node>
+ <plugin:node ident='5834'>
+ <xsl:attribute name='pos'>
+ <xsl:text>{150, 300}</xsl:text>
+ </xsl:attribute>
+ </plugin:node>
+ <plugin:node ident='5838'>
+ <xsl:attribute name='pos'>
+ <xsl:text>{0, 200}</xsl:text>
+ </xsl:attribute>
+ </plugin:node>
+ <plugin:node ident='5839'>
+ <xsl:attribute name='pos'>
+ <xsl:text>{150, 200}</xsl:text>
+ </xsl:attribute>
+ </plugin:node>
+ <content tab-stops='L 84' font-size='32' font-color='g1' font-name='GillSans' paragraph-alignment='center'>
+ <xsl:value-of select='$cells[1]'/>
+ </content>
+ <dict/>
+ </plugin:element>
+
+ </xsl:for-each>
+ </plugin:table>
+ </plugin-data>
+ </plugin>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test='not(self::foilgroup) and .//imageobject'>
+ <xsl:variable name='base'>
+ <xsl:call-template name='str:substring-after-last'>
+ <xsl:with-param name='text' select='.//imageobject/imagedata/@fileref'/>
+ <xsl:with-param name='chars' select='"/"'/>
+ </xsl:call-template>
+ </xsl:variable>
+ <image display-name='{$base}' id='image-1' image-data='{.//imageobject/imagedata/@fileref}' byte-size='1' transformation='1 0 0 1 500 200' natural-size='{.//imageobject/imagedata/@width} {.//imageobject/imagedata/@height}' lock-aspect-ratio='true'/>
+ </xsl:if>
+ <xsl:apply-templates select='para|informalexample|example' mode='slides'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match='itemizedlist/listitem' mode='slides'>
+ <bullet marker-type='inherited' level='{count(ancestor::itemizedlist)}'>
+ <content tab-stops='L 96' font-size='36' font-color='g1' font-name='GillSans' paragraph-alignment='left'>
+ <xsl:apply-templates select='para|informalexample' mode='slides'/>
+ </content>
+ </bullet>
+ <xsl:apply-templates select='itemizedlist/listitem' mode='slides'/>
+ </xsl:template>
+ <xsl:template match='listitem/para|listitem/informalexample' mode='slides'>
+ <xsl:if test='preceding-sibling::*'>
+ <xsl:text>
+
+</xsl:text>
+ </xsl:if>
+ <xsl:apply-templates mode='slides'/>
+ </xsl:template>
+ <xsl:template match='listitem/informalexample/programlisting' mode='slides'>
+ <textbox transformation='1 0 0 1 110 260' size='830 82'>
+ <content tab-stops='L 84' font-size='36' font-color='g1' font-name='AmericanTypewriter-CondensedBold' paragraph-alignment='left'>
+ <xsl:call-template name='literallayout'/>
+ </content>
+ </textbox>
+ </xsl:template>
+
+ <xsl:template name='literallayout'>
+ <xsl:param name='nodes' select='node()'/>
+ <xsl:param name='inCDATA' select='false()'/>
+
+ <xsl:choose>
+ <xsl:when test='not($nodes) and $inCDATA'>
+ <xsl:text disable-output-escaping='yes'>]]&gt;</xsl:text>
+ </xsl:when>
+ <xsl:when test='not($nodes)'/>
+ <xsl:when test='$nodes[1][self::emphasis] and $inCDATA'>
+ <xsl:text disable-output-escaping='yes'>]]&gt;</xsl:text>
+ <xsl:apply-templates select='$nodes[1]' mode='literal'/>
+ <xsl:call-template name='literallayout'>
+ <xsl:with-param name='nodes' select='$nodes[position() != 1]'/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test='$nodes[1][self::emphasis]'>
+ <xsl:apply-templates select='$nodes[1]' mode='literal'/>
+ <xsl:call-template name='literallayout'>
+ <xsl:with-param name='nodes' select='$nodes[position() != 1]'/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test='$inCDATA'>
+ <xsl:apply-templates select='$nodes[1]' mode='literal'/>
+ <xsl:call-template name='literallayout'>
+ <xsl:with-param name='nodes' select='$nodes[position() != 1]'/>
+ <xsl:with-param name='inCDATA' select='$inCDATA'/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text disable-output-escaping='yes'>&lt;![CDATA[</xsl:text>
+ <xsl:apply-templates select='$nodes[1]' mode='literal'/>
+ <xsl:call-template name='literallayout'>
+ <xsl:with-param name='nodes' select='$nodes[position() != 1]'/>
+ <xsl:with-param name='inCDATA' select='true()'/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match='para' mode='slides'>
+ <textbox transformation='1 0 0 1 110 {200 + count(preceding-sibling::para|preceding-sibling::informalexample) * 60}' size='830 41'>
+ <content tab-stops='L 84' font-size='36' font-color='g1' paragraph-alignment='left'>
+ <xsl:attribute name='font-name'>
+ <xsl:choose>
+ <xsl:when test='@font-style = "italic"'>GillSans-Italic</xsl:when>
+ <xsl:otherwise>GillSans</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+
+ <xsl:apply-templates mode='slides'/>
+ </content>
+ </textbox>
+ </xsl:template>
+
+ <xsl:template match='text()' mode='slides'>
+ <xsl:variable name='tmp'>
+ <xsl:call-template name='str:subst'>
+ <xsl:with-param name='text' select='.'/>
+ <xsl:with-param name='replace'>&quot;</xsl:with-param>
+ <xsl:with-param name='with'>“</xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name='content'>
+ <xsl:call-template name='str:subst'>
+ <xsl:with-param name='text' select='$tmp'/>
+ <xsl:with-param name='replace'>]]&gt;</xsl:with-param>
+ <xsl:with-param name='with'>]] &gt;</xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test='ancestor::programlisting'>
+ <xsl:value-of disable-output-escaping='yes' select='$content'/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select='$content'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match='text()' mode='literal'>
+ <xsl:variable name='tmp'>
+ <xsl:call-template name='str:subst'>
+ <xsl:with-param name='text' select='.'/>
+ <xsl:with-param name='replace'>&lt;</xsl:with-param>
+ <xsl:with-param name='with'>&lt;</xsl:with-param>
+ <xsl:with-param name='disable-output-escaping' select='yes'/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name='tmp2'>
+ <xsl:call-template name='str:subst'>
+ <xsl:with-param name='text' select='$tmp'/>
+ <xsl:with-param name='replace'>]]&gt;</xsl:with-param>
+ <xsl:with-param name='with'>]] &gt;</xsl:with-param>
+ <xsl:with-param name='disable-output-escaping' select='yes'/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select='$tmp2' disable-output-escaping='yes'/>
+ </xsl:template>
+
+ <xsl:template match='informalexample|example' mode='slides'>
+ <xsl:apply-templates mode='slides'/>
+ </xsl:template>
+ <xsl:template match='programlisting' mode='slides'>
+ <xsl:variable name='lines'>
+ <xsl:call-template name='str:count-substring'>
+ <xsl:with-param name='text' select='text()'/>
+ <xsl:with-param name='chars' select='"&#x0a;"'/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name='offset'>
+ <xsl:choose>
+ <xsl:when test='string-length(../preceding-sibling::para) > 45'>20</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- xsl:comment> layout programlisting with offset <xsl:value-of select='$offset'/> have preceding-sibling para? <xsl:value-of select='count(../preceding-sibling::para)'/> length <xsl:value-of select='string-length(../preceding-sibling::para)'/></xsl:comment -->
+ <textbox transformation='1 0 0 1 110 {200 + $offset + count(preceding-sibling::para|../preceding-sibling::para|preceding-sibling::informalexample|preceding-sibling::example) * 60}' size='830 {($lines + 1) * 41}'>
+ <content tab-stops='L 84' font-size='36' font-color='g1' font-name='AmericanTypewriter-CondensedBold' paragraph-alignment='left'>
+ <xsl:choose>
+ <xsl:when test='emphasis'>
+ <xsl:call-template name='literallayout'/>
+ </xsl:when>
+ <xsl:otherwise>
+ <span>
+ <xsl:call-template name='literallayout'/>
+ </span>
+ </xsl:otherwise>
+ </xsl:choose>
+ </content>
+ </textbox>
+ </xsl:template>
+
+ <xsl:template match='emphasis' mode='literal'>
+ <span>
+ <xsl:choose>
+ <xsl:when test='ancestor::programlisting and @font-style = "italic" and @font-weight="bold"'>
+ <xsl:attribute name='font-name'>AmericanTypewriter-CondensedBoldItalic</xsl:attribute>
+ </xsl:when>
+ <xsl:when test='@font-style = "italic" and @font-weight="bold"'>
+ <xsl:attribute name='font-name'>GillSans-BoldItalic</xsl:attribute>
+ </xsl:when>
+ <xsl:when test='ancestor::programlisting and @font-style = "italic"'>
+ <xsl:attribute name='font-name'>AmericanTypewriter-CondensedItalic</xsl:attribute>
+ </xsl:when>
+ <xsl:when test='@font-style = "italic"'>
+ <xsl:attribute name='font-name'>GillSans-Italic</xsl:attribute>
+ </xsl:when>
+ <xsl:when test='ancestor::programlisting and @font-weight = "bold"'>
+ <xsl:attribute name='font-name'>AmericanTypewriter-CondensedBold</xsl:attribute>
+ </xsl:when>
+ <xsl:when test='@font-weight = "bold"'>
+ <xsl:attribute name='font-name'>GillSans-Bold</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test='@fill'>
+ <xsl:attribute name='font-color'>
+ <xsl:variable name='red'>
+ <xsl:call-template name='math:cvt-hex-decimal'>
+ <xsl:with-param name='value' select='substring(@fill, 2, 2)'/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name='green'>
+ <xsl:call-template name='math:cvt-hex-decimal'>
+ <xsl:with-param name='value' select='substring(@fill, 4, 2)'/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name='blue'>
+ <xsl:call-template name='math:cvt-hex-decimal'>
+ <xsl:with-param name='value' select='substring(@fill, 6, 2)'/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:value-of select='$red div 255'/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select='$green div 255'/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select='$blue div 255'/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name='literallayout'/>
+ </span>
+ </xsl:template>
+
+ <xsl:template match="*">
+ <xsl:copy>
+ <xsl:for-each select="@*">
+ <xsl:copy/>
+ </xsl:for-each>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:template>
+ <xsl:template match="comment()|processing-instruction()">
+ <xsl:copy/>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/cmp.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/cmp.xsl
new file mode 100644
index 0000000..6e2866d
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/cmp.xsl
@@ -0,0 +1,348 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet
+ version="1.0"
+ extension-element-prefixes="doc"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://xsltsl.org/xsl/documentation/1.0"
+ xmlns:str="http://xsltsl.org/string"
+ xmlns:cmp="http://xsltsl.org/cmp"
+ exclude-result-prefixes="cmp str doc"
+>
+
+ <doc:reference xmlns="">
+ <referenceinfo>
+ <releaseinfo role="meta">
+ $Id: cmp.xsl 6297 2006-09-14 01:32:27Z xmldoc $
+ </releaseinfo>
+ <author>
+ <surname>Hummel</surname>
+ <firstname>Mark</firstname>
+ </author>
+ <copyright>
+ <year>2003</year>
+ <holder>Mark Hummel</holder>
+ </copyright>
+ </referenceinfo>
+
+ <title>XML Compare</title>
+
+ <partintro>
+ <section>
+ <title>Introduction</title>
+
+ <para>This module provides a template for comparing two xml documents. </para>
+
+ </section>
+ </partintro>
+
+ </doc:reference>
+
+
+ <doc:template name="cmp:diff">
+ <refpurpose>Find differences</refpurpose>
+
+ <refdescription>
+ <para>Compare two xml documents and display differences. Two xml documents are defined to be the same if: They have the matching elements and attributes, and that the data in the elements also match. The comparison is order sensitive. </para>
+
+ <para>The element names from the documents at the current depth are compared, followed by their values, then any attribute names and values are compared. The process is applied then to the subtrees of the documents.</para>
+
+ <para>Notes: If there are leaf nodes in one nodeset which don't exist in the other, the value of those 'extra' elements won't appear as a difference.
+ </para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>ns1</term>
+ <term>ns2</term>
+ <listitem>
+ <para>The two nodesets which are to be compared. </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns the difference between the documents. </para>
+
+ <para>The format of the output is an xml document. A node is added to the result tree for every difference. The node contains the type of difference (e.g element name difference, attribute value difference, etc), the value in the first nodeset and the value in the second nodeset, and the parent node. The indentation level is the depth at which the difference was found relative to the first document. </para>
+
+ </refreturn>
+ </doc:template>
+
+ <!-- pass in a nodeset and compare. Is order sensitive. Output attribute, element and textual differences. -->
+
+ <xsl:template name="cmp:diff">
+ <xsl:param name="ns1"/>
+ <xsl:param name="ns2"/>
+
+ <!-- attribute compare -->
+ <!-- Optimisation attempt
+
+ Can probaby change this into one loop ie -
+ <xsl:for-each
+ i = position
+ if node1[i] = node2[i]...
+
+ -->
+
+ <!-- Need to check if there are two sets of attributes -->
+ <xsl:choose>
+ <xsl:when test='count($ns1/attribute::*) = count($ns2/attribute::*)'>
+ <xsl:for-each select="$ns1/attribute::*">
+ <xsl:variable name="name1" select="name()"/>
+ <xsl:variable name="value1" select="."/>
+ <xsl:variable name="i" select="position()"/>
+
+ <xsl:for-each select="$ns2/attribute::*">
+
+ <xsl:variable name="j" select="position()"/>
+ <xsl:variable name="name2" select="name()"/>
+ <xsl:variable name="value2" select="."/>
+
+ <xsl:if test="$i = $j">
+ <xsl:if test="$name1 != $name2">
+ <attributeNameDifference>
+ <parentElement><xsl:value-of select="name(..)"/></parentElement>
+ <before><xsl:value-of select="$name1"/></before>
+ <after><xsl:value-of select="$name2"/></after>
+ </attributeNameDifference>
+ </xsl:if>
+
+ <xsl:if test="$name1 = $name2 and $value1 != $value2">
+ <attributeValueDifference>
+ <parentElement><xsl:value-of select="name(..)"/></parentElement>
+ <before><xsl:value-of select="$value1"/></before>
+ <after><xsl:value-of select="$value2"/></after>
+ </attributeValueDifference>
+ </xsl:if>
+
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <attributeNameDifference>
+ <parentElement>
+ <xsl:value-of select="name(..)"/>
+ </parentElement>
+ <before><xsl:value-of select='$ns1/attribute::*'/></before>
+ <after><xsl:value-of select='$ns2/attribute::*'/></after>
+ </attributeNameDifference>
+ </xsl:otherwise>
+ </xsl:choose>
+
+
+ <!-- Find element differences by comparing the element names from the same position in both documents. Iterate over all the nodes in the nodeset with the largest number of elements, so the extra elements will appear as differences. -->
+
+ <xsl:choose>
+ <!-- Define loop direction based on which tree has more nodes
+ FIXME: Replacing this with one for-each and a test for the case
+ of the second tree having more nodes would be more elegant
+
+ Solution: Add variable for direction and assign the 'larger' nodeset to that
+ variable. Then do one for-each.
+
+ FIXME: The solution is a bit too iterative. Make it more functional
+
+ -->
+ <xsl:when test="count($ns1) &gt; count($ns2)">
+ <xsl:for-each select="$ns1">
+ <xsl:variable name="i" select="position()"/>
+
+ <xsl:message>node[<xsl:value-of select='$i'/>]:
+ <xsl:value-of select='$ns1[$i]'/>
+ </xsl:message>
+
+ <!-- Element name compare -->
+ <xsl:if test="name($ns1[$i]) != name($ns2[$i])">
+ <elementNameDifference>
+ <parentElement><xsl:value-of select="name(..)"/></parentElement>
+ <before><xsl:value-of select="name($ns1[$i])"/></before>
+ <after><xsl:value-of select="name($ns2[$i])"/></after>
+ </elementNameDifference>
+ </xsl:if>
+
+ <!-- Element Value compare -->
+
+ <xsl:if test="count($ns1/*) = 0">
+ <xsl:if test="$ns1[$i] != $ns2[$i]">
+ <elementValueDifference>
+ <parentElement><xsl:value-of select="name(..)"/></parentElement>
+ <before><xsl:value-of select="$ns1[$i]"/></before>
+ <after><xsl:value-of select="$ns2[$i]"/></after>
+ </elementValueDifference>
+ </xsl:if>
+ </xsl:if>
+
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="$ns2">
+ <xsl:variable name="i" select="position()"/>
+
+ <!-- Element Name compare -->
+
+ <xsl:if test="name($ns1[$i]) != name($ns2[$i])">
+ <elementNameDifference>
+ <parentElement><xsl:value-of select="name(..)"/></parentElement>
+ <before><xsl:value-of select="name($ns1[$i])"/></before>
+ <after><xsl:value-of select="name($ns2[$i])"/></after>
+ </elementNameDifference>
+
+ </xsl:if>
+
+ <!-- value compare -->
+
+ <xsl:if test="count($ns2/*) = 0">
+ <xsl:if test="$ns2[$i] != $ns1[$i]">
+ <elementValueDifference>
+ <parentElement><xsl:value-of select="name(..)"/></parentElement>
+ <after><xsl:value-of select="$ns2[$i]"/></after>
+ <before><xsl:value-of select="$ns1[$i]"/></before>
+ </elementValueDifference>
+ </xsl:if>
+ </xsl:if>
+
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <!-- stop processing when leaf node is reached. -->
+
+ <xsl:if test="count($ns1/*) &gt; 0 and count($ns2/*) &gt; 0">
+ <xsl:call-template name="cmp:diff">
+ <xsl:with-param name="ns1" select="$ns1/*"/>
+ <xsl:with-param name="ns2" select="$ns2/*"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ </xsl:template>
+
+ <!-- Return false if the two nodesets are not identical
+ -->
+
+ <doc:template name="cmp:cmp">
+ <refpurpose>Compare</refpurpose>
+
+ <refdescription>
+ <para>Recursively compare two xml nodesets, stop when a difference is found and return false. Otherwise return true if the document is identical. </para>
+
+ <para>The element names from the documents at the current depth are compared, followed by their values, then any attribute names and values are compared. The process is applied then to the subtrees of the documents.</para>
+
+ <para>Notes: If there are leaf nodes in one nodeset which don't exist in the other, the value of those 'extra' elements won't appear as a difference.
+ </para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>ns1</term>
+ <term>ns2</term>
+ <listitem>
+ <para>The two nodesets which are to be compared. </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>False when the nodesets are not identical, empty otherwise. </para>
+
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="cmp:cmp">
+ <xsl:param name="ns1"/>
+ <xsl:param name="ns2"/>
+ <xsl:param name="depth"/>
+
+ <xsl:choose>
+ <xsl:when test='count($ns1) != count($ns2)'>
+ <xsl:value-of select='"countDiff"'/>
+ </xsl:when>
+ <xsl:when test='count($ns1/attribute::*) != count($ns2/attribute::*)'>
+ <xsl:value-of select='"countDiff"'/>
+ </xsl:when>
+ <xsl:when test='$ns1 and $ns2'>
+
+ <xsl:variable name='result'>
+ <xsl:call-template name='cmp:cmp'>
+ <xsl:with-param name='ns1' select='$ns1/*'/>
+ <xsl:with-param name='ns2' select='$ns2/*'/>
+ <xsl:with-param name='depth' select='$depth+1'/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test='$result = "countDiff"'>
+ <xsl:value-of select='$result'/>
+ </xsl:when>
+ <xsl:when test='$result = "textDiff"'>
+ <xsl:value-of select='$result'/>
+ </xsl:when>
+ <xsl:when test='$result = ""'>
+
+ <xsl:variable name='keyText1' select='name($ns1)'/>
+ <xsl:variable name='keyText2' select='name($ns2)'/>
+
+ <xsl:choose>
+ <!-- Check if the text of the nodesets are the same and the attributes-->
+ <xsl:when test='$ns1 = $ns2 and $keyText1 = $keyText2'>
+
+ <!-- Check the attribute names are the same -->
+ <!-- Number of attributes being different is caught higher up -->
+ <xsl:if test='count($ns1/attribute::*)'>
+ <xsl:for-each select='$ns1/attribute::*'>
+ <xsl:variable name='i' select='position()'/>
+ <xsl:variable name='name1' select='name(.)'/>
+ <xsl:variable name='value1' select='.'/>
+
+ <xsl:for-each select='$ns2/attribute::*'>
+ <xsl:variable name='j' select='position()'/>
+ <xsl:variable name='name2' select='name(.)'/>
+ <xsl:variable name='value2' select='.'/>
+
+ <xsl:if test='$i = $j and ($name1 != $name2 or
+ $value1 != $value2)'>
+ <xsl:value-of select='"textDiff"'/>
+ </xsl:if>
+
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:if>
+ <!--
+ <xsl:variable name='diffResult'>
+ <xsl:call-template name='cmp:diff'>
+ <xsl:with-param name='ns1' select='$ns1'/>
+ <xsl:with-param name='ns2' select='$ns2'/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test='not($diffResult = "")'>
+ <xsl:value-of select='"textDiff"'/>
+ </xsl:if>
+ -->
+
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select='"textDiff"'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+
+ </xsl:when>
+ <xsl:when test='$ns1 and not($ns2)'>
+ <xsl:value-of select='"structDiff"'/>
+ </xsl:when>
+ <xsl:when test='$ns2 and not($ns1)'>
+ <xsl:value-of select='"structDiff"'/>
+ </xsl:when>
+ </xsl:choose>
+
+ </xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/date-time.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/date-time.xsl
new file mode 100644
index 0000000..671260d
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/date-time.xsl
@@ -0,0 +1,1524 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://xsltsl.org/xsl/documentation/1.0"
+ xmlns:dt="http://xsltsl.org/date-time"
+ xmlns:str="http://xsltsl.org/string"
+ extension-element-prefixes="doc str">
+
+ <doc:reference xmlns="">
+ <referenceinfo>
+ <releaseinfo role="meta">
+ $Id: date-time.xsl 3991 2004-11-10 06:51:55Z balls $
+ </releaseinfo>
+ <author>
+ <surname>Diamond</surname>
+ <firstname>Jason</firstname>
+ </author>
+ <copyright>
+ <year>2004</year>
+ <holder>Steve Ball</holder>
+ </copyright>
+ <copyright>
+ <year>2001</year>
+ <holder>Jason Diamond</holder>
+ </copyright>
+ </referenceinfo>
+
+ <title>Date/Time Processing</title>
+
+ <partintro>
+ <section>
+ <title>Introduction</title>
+
+ <para>This module provides templates for formatting and parsing date/time strings.</para>
+
+ <para>See <ulink url="http://www.tondering.dk/claus/calendar.html">http://www.tondering.dk/claus/calendar.html</ulink> for more information on calendars and the calculations this library performs.</para>
+
+ </section>
+ </partintro>
+
+ </doc:reference>
+
+ <doc:template name="dt:format-date-time" xmlns="">
+ <refpurpose>Returns a string with a formatted date/time.</refpurpose>
+
+ <refdescription>
+ <para>The formatted date/time is determined by the format parameter. The default format is %Y-%m-%dT%H:%M:%S%z, the W3C format.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+
+ <varlistentry>
+ <term>xsd-date-time</term>
+ <listitem>
+ <para>The date-time value in XML Schemas (WXS) format.</para>
+ <para>If this value is specified, it takes priority over other parameters.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>year</term>
+ <listitem>
+ <para>Year, in either 2 or 4+ digit format..</para>
+ <para>If the year is given as a two digit value, it will be converted to a four digit value using the fixed window method. Values between 00 and 49 will be prepended by "20". Values between 50 and 99 will be prepended by "19".</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>month</term>
+ <listitem>
+ <para>Month (1 - 12; January = 1)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>day</term>
+ <listitem>
+ <para>Day of month (1 - 31)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>hour</term>
+ <listitem>
+ <para>Hours since midnight (0 - 23)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>minute</term>
+ <listitem>
+ <para>Minutes after hour (0 - 59)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>second</term>
+ <listitem>
+ <para>Seconds after minute (0 - 59)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>time-zone</term>
+ <listitem>
+ <para>Time zone string (e.g., 'Z' or '-08:00')</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>format</term>
+ <listitem>
+ <para>The format specification.</para>
+ <variablelist>
+
+ <varlistentry>
+ <term>%a</term>
+ <listitem>
+ <para>Abbreviated weekday name</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%A</term>
+ <listitem>
+ <para>Full weekday name</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%b</term>
+ <listitem>
+ <para>Abbreviated month name</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%B</term>
+ <listitem>
+ <para>Full month name</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%c</term>
+ <listitem>
+ <para>Date and time representation appropriate for locale</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%d</term>
+ <listitem>
+ <para>Day of month as decimal number (01 - 31)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%e</term>
+ <listitem>
+ <para>Day of month as decimal number (1 - 31)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%H</term>
+ <listitem>
+ <para>Hour in 24-hour format (00 - 23)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%I</term>
+ <listitem>
+ <para>Hour in 12-hour format (01 - 12)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%i</term>
+ <listitem>
+ <para>Hour in 12-hour format (1 - 12)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%j</term>
+ <listitem>
+ <para>Day of year as decimal number (001 - 366)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%m</term>
+ <listitem>
+ <para>Month as decimal number (01 - 12)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%n</term>
+ <listitem>
+ <para>Month as decimal number (1 - 12)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%M</term>
+ <listitem>
+ <para>Minute as decimal number (00 - 59)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%P</term>
+ <listitem>
+ <para>Current locale's A.M./P.M. indicator for 12-hour clock, uppercase</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%Q</term>
+ <listitem>
+ <para>Current locale's A.M./P.M. indicator for 12-hour clock, uppercase with periods</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%p</term>
+ <listitem>
+ <para>Current locale's A.M./P.M. indicator for 12-hour clock, lowercase</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%q</term>
+ <listitem>
+ <para>Current locale's A.M./P.M. indicator for 12-hour clock, lowercase with periods</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%S</term>
+ <listitem>
+ <para>Second as decimal number (00 - 59)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%U</term>
+ <listitem>
+ <para>Week of year as decimal number, with Sunday as first day of week (00 - 53)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%w</term>
+ <listitem>
+ <para>Weekday as decimal number (0 - 6; Sunday is 0)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%W</term>
+ <listitem>
+ <para>Week of year as decimal number, with Monday as first day of week (00 - 53)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%x</term>
+ <listitem>
+ <para>Date representation for current locale </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%X</term>
+ <listitem>
+ <para>Time representation for current locale</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%y</term>
+ <listitem>
+ <para>Year without century, as decimal number (00 - 99)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%Y</term>
+ <listitem>
+ <para>Year with century, as decimal number</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%z</term>
+ <listitem>
+ <para>Time-zone name or abbreviation; no characters if time zone is unknown</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>%%</term>
+ <listitem>
+ <para>Percent sign</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns a formatted date/time string.</para>
+ </refreturn>
+
+ </doc:template>
+
+ <xsl:template name="dt:format-date-time">
+ <xsl:param name='xsd-date-time'/>
+ <xsl:param name="year"/>
+ <xsl:param name="month"/>
+ <xsl:param name="day"/>
+ <xsl:param name="hour"/>
+ <xsl:param name="minute"/>
+ <xsl:param name="second"/>
+ <xsl:param name="time-zone"/>
+ <xsl:param name="format" select="'%Y-%m-%dT%H:%M:%S%z'"/>
+
+ <xsl:value-of select="substring-before($format, '%')"/>
+
+ <xsl:variable name="code" select="substring(substring-after($format, '%'), 1, 1)"/>
+
+ <xsl:choose>
+
+ <xsl:when test='$xsd-date-time'>
+ <xsl:call-template name='dt:format-date-time'>
+ <xsl:with-param name='year'>
+ <xsl:call-template name='dt:get-xsd-datetime-year'>
+ <xsl:with-param name='xsd-date-time' select='$xsd-date-time'/>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name='month'>
+ <xsl:call-template name='dt:get-xsd-datetime-month'>
+ <xsl:with-param name='xsd-date-time' select='$xsd-date-time'/>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name='day'>
+ <xsl:call-template name='dt:get-xsd-datetime-day'>
+ <xsl:with-param name='xsd-date-time' select='$xsd-date-time'/>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name='hour'>
+ <xsl:call-template name='dt:get-xsd-datetime-hour'>
+ <xsl:with-param name='xsd-date-time' select='$xsd-date-time'/>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name='minute'>
+ <xsl:call-template name='dt:get-xsd-datetime-minute'>
+ <xsl:with-param name='xsd-date-time' select='$xsd-date-time'/>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name='second'>
+ <xsl:call-template name='dt:get-xsd-datetime-second'>
+ <xsl:with-param name='xsd-date-time' select='$xsd-date-time'/>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name='time-zone'>
+ <xsl:call-template name='dt:get-xsd-datetime-timezone'>
+ <xsl:with-param name='xsd-date-time' select='$xsd-date-time'/>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name='format'>
+ <xsl:choose>
+ <xsl:when test='contains($format, "%")'>
+ <xsl:text>%</xsl:text>
+ <xsl:value-of select='substring-after($format, "%")'/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select='$format'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+
+ <!-- Abbreviated weekday name -->
+ <xsl:when test="$code='a'">
+ <xsl:variable name="day-of-the-week">
+ <xsl:call-template name="dt:calculate-day-of-the-week">
+ <xsl:with-param name="year" select="$year"/>
+ <xsl:with-param name="month" select="$month"/>
+ <xsl:with-param name="day" select="$day"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="dt:get-day-of-the-week-abbreviation">
+ <xsl:with-param name="day-of-the-week" select="$day-of-the-week"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <!-- Full weekday name -->
+ <xsl:when test="$code='A'">
+ <xsl:variable name="day-of-the-week">
+ <xsl:call-template name="dt:calculate-day-of-the-week">
+ <xsl:with-param name="year" select="$year"/>
+ <xsl:with-param name="month" select="$month"/>
+ <xsl:with-param name="day" select="$day"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="dt:get-day-of-the-week-name">
+ <xsl:with-param name="day-of-the-week" select="$day-of-the-week"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <!-- Abbreviated month name -->
+ <xsl:when test="$code='b'">
+ <xsl:call-template name="dt:get-month-abbreviation">
+ <xsl:with-param name="month" select="$month"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <!-- Full month name -->
+ <xsl:when test="$code='B'">
+ <xsl:call-template name="dt:get-month-name">
+ <xsl:with-param name="month" select="$month"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <!-- Date and time representation appropriate for locale -->
+ <xsl:when test="$code='c'">
+ <xsl:text>[not implemented]</xsl:text>
+ </xsl:when>
+
+ <!-- Day of month as decimal number (01 - 31) -->
+ <xsl:when test="$code='d'">
+ <xsl:if test="$day &lt; 10">0</xsl:if>
+ <xsl:value-of select="number($day)"/>
+ </xsl:when>
+ <!-- Day of month as decimal number (1 - 31) -->
+ <xsl:when test="$code='e'">
+ <xsl:value-of select="number($day)"/>
+ </xsl:when>
+
+ <!-- Hour in 24-hour format (00 - 23) -->
+ <xsl:when test="$code='H'">
+ <xsl:if test="$hour &lt; 10">0</xsl:if>
+ <xsl:value-of select="number($hour)"/>
+ </xsl:when>
+
+ <!-- Hour in 12-hour format (01 - 12) -->
+ <xsl:when test="$code='I'">
+ <xsl:choose>
+ <xsl:when test="$hour = 0">12</xsl:when>
+ <xsl:when test="$hour &lt; 10">0<xsl:value-of select="$hour - 0"/></xsl:when>
+ <xsl:when test="$hour &lt; 13"><xsl:value-of select="$hour - 0"/></xsl:when>
+ <xsl:when test="$hour &lt; 22">0<xsl:value-of select="$hour - 12"/></xsl:when>
+ <xsl:otherwise><xsl:value-of select="$hour - 12"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <!-- Hour in 12-hour format (1 - 12) -->
+ <xsl:when test="$code='i'">
+ <xsl:choose>
+ <xsl:when test="$hour = 0">12</xsl:when>
+ <xsl:when test="$hour &lt; 10"><xsl:value-of select="$hour - 0"/></xsl:when>
+ <xsl:when test="$hour &lt; 13"><xsl:value-of select="$hour - 0"/></xsl:when>
+ <xsl:when test="$hour &lt; 22"><xsl:value-of select="$hour - 12"/></xsl:when>
+ <xsl:otherwise><xsl:value-of select="$hour - 12"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <!-- Day of year as decimal number (001 - 366) -->
+ <xsl:when test="$code='j'">
+ <xsl:text>[not implemented]</xsl:text>
+ </xsl:when>
+
+ <!-- Month as decimal number (01 - 12) -->
+ <xsl:when test="$code='m'">
+ <xsl:if test="$month &lt; 10">0</xsl:if>
+ <xsl:value-of select="number($month)"/>
+ </xsl:when>
+ <!-- Month as decimal number (1 - 12) -->
+ <xsl:when test="$code='n'">
+ <xsl:value-of select="number($month)"/>
+ </xsl:when>
+
+ <!-- Minute as decimal number (00 - 59) -->
+ <xsl:when test="$code='M'">
+ <xsl:if test="$minute &lt; 10">0</xsl:if>
+ <xsl:value-of select="number($minute)"/>
+ </xsl:when>
+
+ <!-- Current locale's A.M./P.M. indicator for 12-hour clock -->
+ <xsl:when test="$code='p'">
+ <xsl:choose>
+ <xsl:when test="$hour &lt; 12">am</xsl:when>
+ <xsl:otherwise>pm</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <!-- Current locale's A.M./P.M. indicator for 12-hour clock with periods -->
+ <xsl:when test="$code='q'">
+ <xsl:choose>
+ <xsl:when test="$hour &lt; 12">am</xsl:when>
+ <xsl:otherwise>p.m.</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <!-- Current locale's A.M./P.M. indicator for 12-hour clock -->
+ <xsl:when test="$code='P'">
+ <xsl:choose>
+ <xsl:when test="$hour &lt; 12">AM</xsl:when>
+ <xsl:otherwise>PM</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <!-- Current locale's A.M./P.M. indicator for 12-hour clock with periods -->
+ <xsl:when test="$code='Q'">
+ <xsl:choose>
+ <xsl:when test="$hour &lt; 12">AM</xsl:when>
+ <xsl:otherwise>P.M.</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <!-- Second as decimal number (00 - 59) -->
+ <xsl:when test="$code='S'">
+ <xsl:if test="$second &lt; 10">0</xsl:if>
+ <xsl:value-of select="number($second)"/>
+ </xsl:when>
+
+ <!-- Week of year as decimal number, with Sunday as first day of week (00 - 53) -->
+ <xsl:when test="$code='U'">
+ <!-- add 1 to day -->
+ <xsl:call-template name="dt:calculate-week-number">
+ <xsl:with-param name="year" select="$year"/>
+ <xsl:with-param name="month" select="$month"/>
+ <xsl:with-param name="day" select="$day + 1"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <!-- Weekday as decimal number (0 - 6; Sunday is 0) -->
+ <xsl:when test="$code='w'">
+ <xsl:call-template name="dt:calculate-day-of-the-week">
+ <xsl:with-param name="year" select="$year"/>
+ <xsl:with-param name="month" select="$month"/>
+ <xsl:with-param name="day" select="$day"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <!-- Week of year as decimal number, with Monday as first day of week (00 - 53) -->
+ <xsl:when test="$code='W'">
+ <xsl:call-template name="dt:calculate-week-number">
+ <xsl:with-param name="year" select="$year"/>
+ <xsl:with-param name="month" select="$month"/>
+ <xsl:with-param name="day" select="$day"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <!-- Date representation for current locale -->
+ <xsl:when test="$code='x'">
+ <xsl:text>[not implemented]</xsl:text>
+ </xsl:when>
+
+ <!-- Time representation for current locale -->
+ <xsl:when test="$code='X'">
+ <xsl:text>[not implemented]</xsl:text>
+ </xsl:when>
+
+ <!-- Year without century, as decimal number (00 - 99) -->
+ <xsl:when test="$code='y'">
+ <xsl:choose>
+ <xsl:when test='not(number($year))'>invalid year value</xsl:when>
+
+ <!-- workaround MSXML bug -->
+ <xsl:when test='number($year) mod 100 = 0'>00</xsl:when>
+
+ <xsl:otherwise>
+ <xsl:number format='01' value='number($year) mod 100'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <!-- Year with century, as decimal number -->
+ <xsl:when test="$code='Y'">
+ <xsl:choose>
+ <xsl:when test='not(number($year))'>invalid year value</xsl:when>
+ <xsl:when test='string-length($year) = 2'>
+ <xsl:call-template name='dt:format-two-digit-year'>
+ <xsl:with-param name='year' select='$year'/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test='string-length($year) >= 4'>
+ <xsl:value-of select='$year'/>
+ </xsl:when>
+ <xsl:otherwise>invalid year value</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <!-- Time-zone name or abbreviation; no characters if time zone is unknown -->
+ <xsl:when test="$code='z'">
+ <xsl:value-of select="$time-zone"/>
+ </xsl:when>
+
+ <!-- Percent sign -->
+ <xsl:when test="$code='%'">
+ <xsl:text>%</xsl:text>
+ </xsl:when>
+
+ </xsl:choose>
+
+ <xsl:variable name="remainder" select="substring(substring-after($format, '%'), 2)"/>
+
+ <xsl:if test="not($xsd-date-time) and $remainder">
+ <xsl:call-template name="dt:format-date-time">
+ <xsl:with-param name="year" select="$year"/>
+ <xsl:with-param name="month" select="$month"/>
+ <xsl:with-param name="day" select="$day"/>
+ <xsl:with-param name="hour" select="$hour"/>
+ <xsl:with-param name="minute" select="$minute"/>
+ <xsl:with-param name="second" select="$second"/>
+ <xsl:with-param name="time-zone" select="$time-zone"/>
+ <xsl:with-param name="format" select="$remainder"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ </xsl:template>
+
+ <doc:template name="dt:calculate-day-of-the-week" xmlns="">
+ <refpurpose>Calculates the day of the week.</refpurpose>
+
+ <refdescription>
+ <para>Given any Gregorian date, this calculates the day of the week.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>year</term>
+ <listitem>
+ <para>Year</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>month</term>
+ <listitem>
+ <para>Month (1 - 12; January = 1)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>day</term>
+ <listitem>
+ <para>Day of month (1 - 31)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns the day of the week (0 - 6; Sunday = 0).</para>
+ </refreturn>
+
+ </doc:template>
+
+ <xsl:template name="dt:calculate-day-of-the-week">
+ <xsl:param name="year"/>
+ <xsl:param name="month"/>
+ <xsl:param name="day"/>
+
+ <xsl:variable name="a" select="floor((14 - $month) div 12)"/>
+ <xsl:variable name="y" select="$year - $a"/>
+ <xsl:variable name="m" select="$month + 12 * $a - 2"/>
+
+ <xsl:value-of select="($day + $y + floor($y div 4) - floor($y div 100) + floor($y div 400) + floor((31 * $m) div 12)) mod 7"/>
+
+ </xsl:template>
+
+ <doc:template name="dt:calculate-last-day-of-month" xmlns="">
+ <refpurpose>Calculates the number of days for a specified month.</refpurpose>
+
+ <refdescription>
+ <para>Given any Gregorian month, this calculates the last day of the month.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>year</term>
+ <listitem>
+ <para>Year</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>month</term>
+ <listitem>
+ <para>Month (1 - 12; January = 1)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns the number of days in given month as a decimal number.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="dt:calculate-last-day-of-month">
+ <xsl:param name="year"/>
+ <xsl:param name="month"/>
+
+ <xsl:choose>
+ <xsl:when test="$month = 2">
+ <xsl:choose>
+ <xsl:when test="($year mod 4) = 0 and (($year mod 400) = 0
+ or ($year mod 100) != 0)">29</xsl:when>
+ <xsl:otherwise>28</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$month &lt; 8">
+ <xsl:choose>
+ <xsl:when test="$month mod 2 = 0">30</xsl:when>
+ <xsl:otherwise>31</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$month mod 2 = 1">30</xsl:when>
+ <xsl:otherwise>31</xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="dt:get-day-of-the-week-name" xmlns="">
+ <refpurpose>Gets the day of the week's full name.</refpurpose>
+
+ <refdescription>
+ <para>Converts a numeric day of the week value into a string representing the day's full name.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>day-of-the-week</term>
+ <listitem>
+ <para>Day of the week (0 - 6; Sunday = 0)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns a string.</para>
+ </refreturn>
+
+ </doc:template>
+
+ <xsl:template name="dt:get-day-of-the-week-name">
+ <xsl:param name="day-of-the-week"/>
+
+ <xsl:choose>
+ <xsl:when test="$day-of-the-week = 0">Sunday</xsl:when>
+ <xsl:when test="$day-of-the-week = 1">Monday</xsl:when>
+ <xsl:when test="$day-of-the-week = 2">Tuesday</xsl:when>
+ <xsl:when test="$day-of-the-week = 3">Wednesday</xsl:when>
+ <xsl:when test="$day-of-the-week = 4">Thursday</xsl:when>
+ <xsl:when test="$day-of-the-week = 5">Friday</xsl:when>
+ <xsl:when test="$day-of-the-week = 6">Saturday</xsl:when>
+ <xsl:otherwise>error: <xsl:value-of select="$day-of-the-week"/></xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:template>
+
+ <doc:template name="dt:get-day-of-the-week-abbreviation" xmlns="">
+ <refpurpose>Gets the day of the week's abbreviation.</refpurpose>
+
+ <refdescription>
+ <para>Converts a numeric day of the week value into a string representing the day's abbreviation.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>day-of-the-week</term>
+ <listitem>
+ <para>Day of the week (0 - 6; Sunday = 0)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns a string.</para>
+ </refreturn>
+
+ </doc:template>
+
+ <xsl:template name="dt:get-day-of-the-week-abbreviation">
+ <xsl:param name="day-of-the-week"/>
+
+ <xsl:choose>
+ <xsl:when test="$day-of-the-week = 0">Sun</xsl:when>
+ <xsl:when test="$day-of-the-week = 1">Mon</xsl:when>
+ <xsl:when test="$day-of-the-week = 2">Tue</xsl:when>
+ <xsl:when test="$day-of-the-week = 3">Wed</xsl:when>
+ <xsl:when test="$day-of-the-week = 4">Thu</xsl:when>
+ <xsl:when test="$day-of-the-week = 5">Fri</xsl:when>
+ <xsl:when test="$day-of-the-week = 6">Sat</xsl:when>
+ <xsl:otherwise>error: <xsl:value-of select="$day-of-the-week"/></xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:template>
+
+ <doc:template name="dt:get-month-name" xmlns="">
+ <refpurpose>Gets the month's full name.</refpurpose>
+
+ <refdescription>
+ <para>Converts a numeric month value into a string representing the month's full name.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>month</term>
+ <listitem>
+ <para>Month (1 - 12; Januaray = 1)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns a string.</para>
+ </refreturn>
+
+ </doc:template>
+
+ <xsl:template name="dt:get-month-name">
+ <xsl:param name="month"/>
+
+ <xsl:choose>
+ <xsl:when test="$month = 1">January</xsl:when>
+ <xsl:when test="$month = 2">February</xsl:when>
+ <xsl:when test="$month = 3">March</xsl:when>
+ <xsl:when test="$month = 4">April</xsl:when>
+ <xsl:when test="$month = 5">May</xsl:when>
+ <xsl:when test="$month = 6">June</xsl:when>
+ <xsl:when test="$month = 7">July</xsl:when>
+ <xsl:when test="$month = 8">August</xsl:when>
+ <xsl:when test="$month = 9">September</xsl:when>
+ <xsl:when test="$month = 10">October</xsl:when>
+ <xsl:when test="$month = 11">November</xsl:when>
+ <xsl:when test="$month = 12">December</xsl:when>
+ <xsl:otherwise>error: <xsl:value-of select="$month"/></xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:template>
+
+ <doc:template name="dt:get-month-abbreviation" xmlns="">
+ <refpurpose>Gets the month's abbreviation.</refpurpose>
+
+ <refdescription>
+ <para>Converts a numeric month value into a string representing the month's abbreviation.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>month</term>
+ <listitem>
+ <para>Month (1 - 12; Januaray = 1)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns a string.</para>
+ </refreturn>
+
+ </doc:template>
+
+ <xsl:template name="dt:get-month-abbreviation">
+ <xsl:param name="month"/>
+
+ <xsl:choose>
+ <xsl:when test="$month = 1">Jan</xsl:when>
+ <xsl:when test="$month = 2">Feb</xsl:when>
+ <xsl:when test="$month = 3">Mar</xsl:when>
+ <xsl:when test="$month = 4">Apr</xsl:when>
+ <xsl:when test="$month = 5">May</xsl:when>
+ <xsl:when test="$month = 6">Jun</xsl:when>
+ <xsl:when test="$month = 7">Jul</xsl:when>
+ <xsl:when test="$month = 8">Aug</xsl:when>
+ <xsl:when test="$month = 9">Sep</xsl:when>
+ <xsl:when test="$month = 10">Oct</xsl:when>
+ <xsl:when test="$month = 11">Nov</xsl:when>
+ <xsl:when test="$month = 12">Dec</xsl:when>
+ <xsl:otherwise>error: <xsl:value-of select="$month"/></xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:template>
+
+ <doc:template name="dt:calculate-julian-day" xmlns="">
+ <refpurpose>Calculates the Julian Day for a specified date.</refpurpose>
+
+ <refdescription>
+ <para>Given any Gregorian date, this calculates the Julian Day.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>year</term>
+ <listitem>
+ <para>Year</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>month</term>
+ <listitem>
+ <para>Month (1 - 12; January = 1)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>day</term>
+ <listitem>
+ <para>Day of month (1 - 31)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns the Julian Day as a decimal number.</para>
+ </refreturn>
+
+ </doc:template>
+
+ <xsl:template name="dt:calculate-julian-day">
+ <xsl:param name="year"/>
+ <xsl:param name="month"/>
+ <xsl:param name="day"/>
+
+ <xsl:variable name="a" select="floor((14 - $month) div 12)"/>
+ <xsl:variable name="y" select="$year + 4800 - $a"/>
+ <xsl:variable name="m" select="$month + 12 * $a - 3"/>
+
+ <xsl:value-of select="$day + floor((153 * $m + 2) div 5) + $y * 365 + floor($y div 4) - floor($y div 100) + floor($y div 400) - 32045"/>
+
+ </xsl:template>
+
+ <doc:template name="dt:format-julian-day" xmlns="">
+ <refpurpose>Returns a string with a formatted date for a specified Julian Day.</refpurpose>
+
+ <refdescription>
+ <para>Given any Julian Day, this returns a string according to the format specification.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>julian-day</term>
+ <listitem>
+ <para>A Julian Day</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>format</term>
+ <listitem>
+ <para>The format specification. See dt:format-date-time for more details.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>A string.</para>
+ </refreturn>
+
+ </doc:template>
+
+ <xsl:template name="dt:format-julian-day">
+ <xsl:param name="julian-day"/>
+ <xsl:param name="format" select="'%Y-%m-%d'"/>
+
+ <xsl:variable name="a" select="$julian-day + 32044"/>
+ <xsl:variable name="b" select="floor((4 * $a + 3) div 146097)"/>
+ <xsl:variable name="c" select="$a - floor(($b * 146097) div 4)"/>
+
+ <xsl:variable name="d" select="floor((4 * $c + 3) div 1461)"/>
+ <xsl:variable name="e" select="$c - floor((1461 * $d) div 4)"/>
+ <xsl:variable name="m" select="floor((5 * $e + 2) div 153)"/>
+
+ <xsl:variable name="day" select="$e - floor((153 * $m + 2) div 5) + 1"/>
+ <xsl:variable name="month" select="$m + 3 - 12 * floor($m div 10)"/>
+ <xsl:variable name="year" select="$b * 100 + $d - 4800 + floor($m div 10)"/>
+
+ <xsl:call-template name="dt:format-date-time">
+ <xsl:with-param name="year" select="$year"/>
+ <xsl:with-param name="month" select="$month"/>
+ <xsl:with-param name="day" select="$day"/>
+ <xsl:with-param name="format" select="$format"/>
+ </xsl:call-template>
+
+ </xsl:template>
+
+ <doc:template name="dt:calculate-week-number" xmlns="">
+ <refpurpose>Calculates the week number for a specified date.</refpurpose>
+
+ <refdescription>
+ <para>Assumes Monday is the first day of the week.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>year</term>
+ <listitem>
+ <para>Year</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>month</term>
+ <listitem>
+ <para>Month (1 - 12; January = 1)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>day</term>
+ <listitem>
+ <para>Day of month (1 - 31)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns the week number as a decimal number.</para>
+ </refreturn>
+
+ </doc:template>
+
+ <xsl:template name="dt:calculate-week-number">
+ <xsl:param name="year"/>
+ <xsl:param name="month"/>
+ <xsl:param name="day"/>
+
+ <xsl:variable name="J">
+ <xsl:call-template name="dt:calculate-julian-day">
+ <xsl:with-param name="year" select="$year"/>
+ <xsl:with-param name="month" select="$month"/>
+ <xsl:with-param name="day" select="$day"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="d4" select="($J + 31741 - ($J mod 7)) mod 146097 mod 36524 mod 1461"/>
+ <xsl:variable name="L" select="floor($d4 div 1460)"/>
+ <xsl:variable name="d1" select="(($d4 - $L) mod 365) + $L"/>
+
+ <xsl:value-of select="floor($d1 div 7) + 1"/>
+
+ </xsl:template>
+
+ <doc:template name="dt:get-month-number" xmlns="">
+ <refpurpose>Take a month by name and return a number which can be used as input to the templates. </refpurpose>
+
+ <refdescription>
+ <para>Input</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>month</term>
+ <listitem>
+ <para>Month as described either by full name or abbreviation.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Return a month as a decimal number. (Jan = 1)</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='dt:get-month-number'>
+ <xsl:param name='month'/>
+
+ <xsl:variable name='monToUpper'>
+ <xsl:call-template name='str:to-upper'>
+ <xsl:with-param name='text' select='$month'/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test='starts-with($monToUpper,"JAN")'>
+ <xsl:value-of select='"1"'/>
+ </xsl:when>
+ <xsl:when test='starts-with($monToUpper,"FEB")'>
+ <xsl:value-of select='2'/>
+ </xsl:when>
+ <xsl:when test='starts-with($monToUpper,"MAR")'>
+ <xsl:value-of select='3'/>
+ </xsl:when>
+ <xsl:when test='starts-with($monToUpper,"APR")'>
+ <xsl:value-of select='4'/>
+ </xsl:when>
+ <xsl:when test='starts-with($monToUpper,"MAY")'>
+ <xsl:value-of select='5'/>
+ </xsl:when>
+ <xsl:when test='starts-with($monToUpper,"JUN")'>
+ <xsl:value-of select='6'/>
+ </xsl:when>
+ <xsl:when test='starts-with($monToUpper,"JUL")'>
+ <xsl:value-of select='7'/>
+ </xsl:when>
+ <xsl:when test='starts-with($monToUpper,"AUG")'>
+ <xsl:value-of select='8'/>
+ </xsl:when>
+ <xsl:when test='starts-with($monToUpper,"SEP")'>
+ <xsl:value-of select='9'/>
+ </xsl:when>
+ <xsl:when test='starts-with($monToUpper,"OCT")'>
+ <xsl:value-of select='10'/>
+ </xsl:when>
+ <xsl:when test='starts-with($monToUpper,"NOV")'>
+ <xsl:value-of select='11'/>
+ </xsl:when>
+ <xsl:when test='starts-with($monToUpper,"DEC")'>
+ <xsl:value-of select='"12"'/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="dt:get-xsd-datetime-year" xmlns="">
+ <refpurpose>Return year component of XSD DateTime value.</refpurpose>
+
+ <refdescription>
+ <para>Extract component of XML Schemas DateTime value.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>xsd-date-time</term>
+ <listitem>
+ <para>A value in XSD DateTime format.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns year component.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='dt:get-xsd-datetime-year'>
+ <xsl:param name='xsd-date-time'/>
+
+ <xsl:choose>
+ <xsl:when test='contains($xsd-date-time, "T")'>
+ <xsl:call-template name='dt:get-xsd-datetime-year'>
+ <xsl:with-param name='xsd-date-time' select='substring-before($xsd-date-time, "T")'/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <!-- Check for time -->
+ <xsl:when test='substring($xsd-date-time, 3, 1) = ":"'/>
+
+ <xsl:otherwise>
+ <!-- This is a date -->
+ <xsl:value-of select='substring-before($xsd-date-time, "-")'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="dt:get-xsd-datetime-month" xmlns="">
+ <refpurpose>Return month component of XSD DateTime value.</refpurpose>
+
+ <refdescription>
+ <para>Extract component of XML Schemas DateTime value.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>xsd-date-time</term>
+ <listitem>
+ <para>A value in XSD DateTime format.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns month component.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='dt:get-xsd-datetime-month'>
+ <xsl:param name='xsd-date-time'/>
+
+ <xsl:choose>
+ <xsl:when test='contains($xsd-date-time, "T")'>
+ <xsl:call-template name='dt:get-xsd-datetime-month'>
+ <xsl:with-param name='xsd-date-time' select='substring-before($xsd-date-time, "T")'/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <!-- Check for time -->
+ <xsl:when test='substring($xsd-date-time, 3, 1) = ":"'/>
+
+ <xsl:otherwise>
+ <!-- This is a date -->
+ <xsl:value-of select='substring(substring-after($xsd-date-time, "-"), 1, 2)'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="dt:get-xsd-datetime-day" xmlns="">
+ <refpurpose>Return day component of XSD DateTime value.</refpurpose>
+
+ <refdescription>
+ <para>Extract component of XML Schemas DateTime value.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>xsd-date-time</term>
+ <listitem>
+ <para>A value in XSD DateTime format.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns day component.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='dt:get-xsd-datetime-day'>
+ <xsl:param name='xsd-date-time'/>
+
+ <xsl:choose>
+ <xsl:when test='contains($xsd-date-time, "T")'>
+ <xsl:call-template name='dt:get-xsd-datetime-day'>
+ <xsl:with-param name='xsd-date-time' select='substring-before($xsd-date-time, "T")'/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <!-- Check for time -->
+ <xsl:when test='substring($xsd-date-time, 3, 1) = ":"'/>
+
+ <xsl:otherwise>
+ <!-- This is a date -->
+ <xsl:value-of select='substring(substring-after($xsd-date-time, "-"), 4, 2)'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="dt:get-xsd-datetime-hour" xmlns="">
+ <refpurpose>Return hour component of XSD DateTime value.</refpurpose>
+
+ <refdescription>
+ <para>Extract component of XML Schemas DateTime value.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>xsd-date-time</term>
+ <listitem>
+ <para>A value in XSD DateTime format.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns hour component.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='dt:get-xsd-datetime-hour'>
+ <xsl:param name='xsd-date-time'/>
+
+ <xsl:choose>
+ <xsl:when test='contains($xsd-date-time, "T")'>
+ <xsl:call-template name='dt:get-xsd-datetime-hour'>
+ <xsl:with-param name='xsd-date-time' select='substring-after($xsd-date-time, "T")'/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <!-- Check for time -->
+ <xsl:when test='substring($xsd-date-time, 3, 1) = ":"'>
+ <xsl:value-of select='substring($xsd-date-time, 1, 2)'/>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <!-- This is a date -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="dt:get-xsd-datetime-minute" xmlns="">
+ <refpurpose>Return minute component of XSD DateTime value.</refpurpose>
+
+ <refdescription>
+ <para>Extract component of XML Schemas DateTime value.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>xsd-date-time</term>
+ <listitem>
+ <para>A value in XSD DateTime format.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns minute component.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='dt:get-xsd-datetime-minute'>
+ <xsl:param name='xsd-date-time'/>
+
+ <xsl:choose>
+ <xsl:when test='contains($xsd-date-time, "T")'>
+ <xsl:call-template name='dt:get-xsd-datetime-minute'>
+ <xsl:with-param name='xsd-date-time' select='substring-after($xsd-date-time, "T")'/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <!-- Check for time -->
+ <xsl:when test='substring($xsd-date-time, 3, 1) = ":"'>
+ <xsl:value-of select='substring($xsd-date-time, 4, 2)'/>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <!-- This is a date -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="dt:get-xsd-datetime-second" xmlns="">
+ <refpurpose>Return second component of XSD DateTime value.</refpurpose>
+
+ <refdescription>
+ <para>Extract component of XML Schemas DateTime value.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>xsd-date-time</term>
+ <listitem>
+ <para>A value in XSD DateTime format.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns second component.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='dt:get-xsd-datetime-second'>
+ <xsl:param name='xsd-date-time'/>
+
+ <xsl:choose>
+ <xsl:when test='contains($xsd-date-time, "T")'>
+ <xsl:call-template name='dt:get-xsd-datetime-second'>
+ <xsl:with-param name='xsd-date-time' select='substring-after($xsd-date-time, "T")'/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <!-- Check for time -->
+ <xsl:when test='substring($xsd-date-time, 3, 1) = ":"'>
+ <xsl:variable name='part' select='substring($xsd-date-time, 7)'/>
+ <xsl:choose>
+ <xsl:when test='contains($part, "Z")'>
+ <xsl:value-of select='substring-before($part, "Z")'/>
+ </xsl:when>
+ <xsl:when test='contains($part, "+")'>
+ <xsl:value-of select='substring-before($part, "+")'/>
+ </xsl:when>
+ <xsl:when test='contains($part, "-")'>
+ <xsl:value-of select='substring-before($part, "-")'/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select='$part'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <!-- This is a date -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="dt:get-xsd-datetime-timezone" xmlns="">
+ <refpurpose>Return timezone component of XSD DateTime value.</refpurpose>
+
+ <refdescription>
+ <para>Extract component of XML Schemas DateTime value.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>xsd-date-time</term>
+ <listitem>
+ <para>A value in XSD DateTime format.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns timezone component.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='dt:get-xsd-datetime-timezone'>
+ <xsl:param name='xsd-date-time'/>
+
+ <xsl:choose>
+ <xsl:when test='contains($xsd-date-time, "Z")'>Z</xsl:when>
+ <xsl:when test='contains($xsd-date-time, "T")'>
+ <xsl:call-template name='dt:get-xsd-datetime-timezone'>
+ <xsl:with-param name='xsd-date-time' select='substring-after($xsd-date-time, "T")'/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test='substring($xsd-date-time, 3, 1) = ":"'>
+ <!-- This is a time -->
+ <xsl:choose>
+ <xsl:when test='contains($xsd-date-time, "+")'>
+ <xsl:text>+</xsl:text>
+ <xsl:value-of select='substring-after($xsd-date-time, "+")'/>
+ </xsl:when>
+ <xsl:when test='contains($xsd-date-time, "-")'>
+ <xsl:text>-</xsl:text>
+ <xsl:value-of select='substring-after($xsd-date-time, "-")'/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- This is a date -->
+ <xsl:value-of select='substring(substring-after($xsd-date-time, "-"), 6)'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="dt:format-two-digit-year" xmlns="">
+ <refpurpose>Return two digit year as four digit year value.</refpurpose>
+
+ <refdescription>
+ <para>Prepend century to two digit year value.</para>
+ <para>Century value is calculated according to suggested solutions in RFC2626 (section 5).</para>
+ <para>Fixed window solution: 20 is prepended to year if the year is less than 50, otherwise 19 is prepended to year.</para>
+ <para>Sliding window solution: The year is considered in the future if the year is less than the current 2 digit year plus 'n' years (where 'n' is a param), otherwise it is considered in the past.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>year</term>
+ <listitem>
+ <para>A year value in 2 digit format.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>method</term>
+ <listitem>
+ <para>RFC2626 suggested solution ('fixed' or 'sliding'). Default is 'fixed'.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>No. of years. Used in sliding windows solution.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns four digit year value.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="dt:format-two-digit-year">
+ <xsl:param name="year" />
+ <xsl:param name="method" select="'fixed'"/>
+
+ <xsl:choose>
+ <xsl:when test="string-length($year) != 2">invalid year value</xsl:when>
+ <xsl:when test="$method = 'fixed'">
+ <xsl:choose>
+ <xsl:when test="$year &lt; 50">20</xsl:when>
+ <xsl:otherwise>19</xsl:otherwise>
+ </xsl:choose>
+ <xsl:value-of select="$year" />
+ </xsl:when>
+ <xsl:when test="$method = 'window'">not yet implemented</xsl:when>
+ <xsl:otherwise>invalid method</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ </xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/example.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/example.xsl
new file mode 100644
index 0000000..349bab9
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/example.xsl
@@ -0,0 +1,90 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet
+ version="1.0"
+ extension-element-prefixes="doc"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://xsltsl.org/xsl/documentation/1.0"
+ xmlns:eg="http://xsltsl.org/example"
+>
+
+ <doc:reference xmlns="">
+ <referenceinfo>
+ <releaseinfo role="meta">
+ $Id: example.xsl 3991 2004-11-10 06:51:55Z balls $
+ </releaseinfo>
+ <author>
+ <surname>Ball</surname>
+ <firstname>Steve</firstname>
+ </author>
+ <copyright>
+ <year>2001</year>
+ <holder>Steve Ball</holder>
+ </copyright>
+ </referenceinfo>
+
+ <title>Example Stylesheet</title>
+
+ <partintro>
+ <section>
+ <title>Introduction</title>
+
+ <para>This module provides a template for adding stylesheet modules to the XSLT Standard Library.</para>
+ <para>To add a new module to the library, follow these easy steps:</para>
+ <orderedlist>
+ <listitem>
+ <para>Copy this file and replace its contents with the new module templates and documentation.</para>
+ </listitem>
+ <listitem>
+ <para>Copy the corresponding test file in the <filename>test</filename> directory. Replace its contents with tests for the new module.</para>
+ </listitem>
+ <listitem>
+ <para>Add an include element in the <filename>stdlib.xsl</filename> stylesheet.</para>
+ </listitem>
+ <listitem>
+ <para>Add an entry in the <filename>test/test.xml</filename> file.</para>
+ </listitem>
+ <listitem>
+ <para>Add entries in the <filename>test/test.xsl</filename> stylesheet.</para>
+ </listitem>
+ <listitem>
+ <para>Add an entry in the <filename>doc/build.xml</filename> file.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>The <filename>example.xsl</filename> stylesheet provides a more extensive example.</para>
+
+ </section>
+ </partintro>
+
+ </doc:reference>
+
+ <doc:template name="eg:example" xmlns="">
+ <refpurpose>Template Example</refpurpose>
+
+ <refdescription>
+ <para>Provides a template for writing templates. Replace this paragraph with a description of your template</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>text</term>
+ <listitem>
+ <para>The example string</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns nothing.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="eg:example">
+ <xsl:param name="text"/>
+ </xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/markup.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/markup.xsl
new file mode 100644
index 0000000..cff2485
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/markup.xsl
@@ -0,0 +1,789 @@
+<xsl:stylesheet version='1.0'
+ xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
+ xmlns:doc='http://xsltsl.org/xsl/documentation/1.0'
+ xmlns:markup='http://xsltsl.org/markup'
+ xmlns:str='http://xsltsl.org/string'
+ extension-element-prefixes='doc markup str'>
+
+ <doc:reference xmlns=''>
+ <referenceinfo>
+ <releaseinfo role="meta">
+ $Id: markup.xsl 3991 2004-11-10 06:51:55Z balls $
+ </releaseinfo>
+ <author>
+ <surname>Ball</surname>
+ <firstname>Steve</firstname>
+ </author>
+ <copyright>
+ <year>2003</year>
+ <year>2001</year>
+ <holder>Steve Ball</holder>
+ </copyright>
+ </referenceinfo>
+
+ <title>XML Markup Templates</title>
+
+ <partintro>
+ <section>
+ <title>Introduction</title>
+
+ <para>This stylesheet module provides functions for generating literal XML markup.</para>
+
+ </section>
+ </partintro>
+
+ </doc:reference>
+
+ <doc:template name="markup:xml-declaration" xmlns="">
+ <refpurpose>Create an XML Declaration</refpurpose>
+
+ <refdescription>
+ <para>This template returns an XML Declaration. Although the XSLT standard provides control over the generation of the XML Declaration, this template may be useful in circumstances where the values must be computed at runtime.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>version</term>
+ <listitem>
+ <para>Version number.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>standalone</term>
+ <listitem>
+ <para>Standalone indication. Must be value "yes" or "no".</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>encoding</term>
+ <listitem>
+ <para>Character encoding.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns an XML Declaration as a string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='markup:xml-declaration'>
+ <xsl:param name='version' select="'1.0'"/>
+ <xsl:param name='standalone'/>
+ <xsl:param name='encoding'/>
+
+ <xsl:text disable-output-escaping='yes'>&lt;?xml version="</xsl:text>
+ <xsl:copy-of select="$version"/>
+ <xsl:text>"</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="string-length($standalone) = 0"/>
+ <xsl:when test='$standalone = "yes" or $standalone = "no"'>
+ <xsl:text> standalone="</xsl:text>
+ <xsl:copy-of select="$standalone"/>
+ <xsl:text>"</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">invalid value "<xsl:value-of select="$standalone"/>" for standalone attribute</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test='string-length($encoding) &gt; 0'>
+ <xsl:text> encoding="</xsl:text>
+ <xsl:copy-of select='$encoding'/>
+ <xsl:text>"</xsl:text>
+ </xsl:if>
+
+ <xsl:text disable-output-escaping='yes'>?&gt;
+</xsl:text>
+ </xsl:template>
+
+ <doc:template name="markup:doctype-declaration" xmlns="">
+ <refpurpose>Create a Document Type Declaration</refpurpose>
+
+ <refdescription>
+ <para>This template returns a Document Type Declaration. Although the XSLT standard provides control over the generation of a Document Type Declaration, this template may be useful in circumstances where the values for the identifiers or the internal subset must be computed at runtime.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>docel</term>
+ <listitem>
+ <para>The name of the document element.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>publicid</term>
+ <listitem>
+ <para>The public identifier for the external DTD subset.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>systemid</term>
+ <listitem>
+ <para>The system identifier for the external DTD subset.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>internaldtd</term>
+ <listitem>
+ <para>The internal DTD subset.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns a Document Type Declaration as a string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='markup:doctype-declaration'>
+ <xsl:param name='docel'/>
+ <xsl:param name='publicid'/>
+ <xsl:param name='systemid'/>
+ <xsl:param name='internaldtd'/>
+
+ <xsl:if test='string-length($docel) = 0'>
+ <xsl:message terminate='yes'>No document element specified</xsl:message>
+ </xsl:if>
+
+ <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE </xsl:text>
+ <xsl:copy-of select="$docel"/>
+
+ <xsl:call-template name='markup:external-identifier'>
+ <xsl:with-param name='publicid' select='$publicid'/>
+ <xsl:with-param name='systemid' select='$systemid'/>
+ <xsl:with-param name='leading-space' select='true()'/>
+ </xsl:call-template>
+
+ <xsl:if test='string-length($internaldtd) &gt; 0'>
+ <xsl:text> [</xsl:text>
+ <xsl:copy-of select='$internaldtd'/>
+ <xsl:text>]</xsl:text>
+ </xsl:if>
+
+ <xsl:text disable-output-escaping='yes'>&gt;
+</xsl:text>
+ </xsl:template>
+
+ <doc:template name="markup:element-declaration" xmlns="">
+ <refpurpose>Create an Element Declaration</refpurpose>
+
+ <refdescription>
+ <para>This template returns an element declaration..</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>type</term>
+ <listitem>
+ <para>The element type.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>content-spec</term>
+ <listitem>
+ <para>The content specification.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns an element declaration as a string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='markup:element-declaration'>
+ <xsl:param name='type'/>
+ <xsl:param name='content-spec' select="'ANY'"/>
+
+ <xsl:if test='string-length($type) = 0'>
+ <xsl:message terminate='yes'>element type must be specified</xsl:message>
+ </xsl:if>
+ <xsl:if test='string-length($content-spec) = 0'>
+ <xsl:message terminate='yes'>content specification must be specified</xsl:message>
+ </xsl:if>
+
+ <xsl:text disable-output-escaping='yes'>&lt;!ELEMENT </xsl:text>
+ <xsl:copy-of select='$type'/>
+ <xsl:text> </xsl:text>
+ <xsl:copy-of select='$content-spec'/>
+ <xsl:text disable-output-escaping='yes'>&gt;</xsl:text>
+ </xsl:template>
+
+ <doc:template name="markup:attlist-declaration" xmlns="">
+ <refpurpose>Create an Attribute List Declaration</refpurpose>
+
+ <refdescription>
+ <para>This template returns an attribute list declaration.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>type</term>
+ <listitem>
+ <para>The element type.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>attr-defns</term>
+ <listitem>
+ <para>Attribute definitions.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns an attribute list declaration as a string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='markup:attlist-declaration'>
+ <xsl:param name='type'/>
+ <xsl:param name='attr-defns'/>
+
+ <xsl:if test='string-length($type) = 0'>
+ <xsl:message terminate='yes'>element type must be specified</xsl:message>
+ </xsl:if>
+
+ <xsl:text disable-output-escaping='yes'>&lt;!ATTLIST </xsl:text>
+ <xsl:copy-of select='$type'/>
+ <xsl:text> </xsl:text>
+ <xsl:copy-of select='$attr-defns'/>
+ <xsl:text disable-output-escaping='yes'>&gt;</xsl:text>
+ </xsl:template>
+
+ <doc:template name="markup:attribute-definition" xmlns="">
+ <refpurpose>Create an Attribute Definition</refpurpose>
+
+ <refdescription>
+ <para>This template returns an attribute definition.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>name</term>
+ <listitem>
+ <para>The attribute name.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>type</term>
+ <listitem>
+ <para>The attribute type.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>default</term>
+ <listitem>
+ <para>The attribute default.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns an attribute definition as a string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='markup:attribute-definition'>
+ <xsl:param name='name'/>
+ <xsl:param name='type'/>
+ <xsl:param name='default'/>
+
+ <xsl:if test='string-length($name) = 0'>
+ <xsl:message terminate='yes'>attribute name must be specified</xsl:message>
+ </xsl:if>
+ <xsl:if test='string-length($type) = 0'>
+ <xsl:message terminate='yes'>attribute type must be specified</xsl:message>
+ </xsl:if>
+ <xsl:if test='string-length($default) = 0'>
+ <xsl:message terminate='yes'>attribute default must be specified</xsl:message>
+ </xsl:if>
+
+ <xsl:text> </xsl:text>
+ <xsl:copy-of select='$name'/>
+ <xsl:text> </xsl:text>
+ <xsl:copy-of select='$type'/>
+ <xsl:text> </xsl:text>
+ <xsl:copy-of select='$default'/>
+ </xsl:template>
+
+ <doc:template name="markup:entity-declaration" xmlns="">
+ <refpurpose>Create an Entity Declaration</refpurpose>
+
+ <refdescription>
+ <para>This template returns an entity declaration.</para>
+ <para>If the 'text' parameter is given a value, then an internal entity is created. If either the 'publicid' or 'systemid' parameters are given a value then an external entity is created. It is an error for the 'text' parameter to have value as well as the 'publicid', 'systemid' or 'notation' parameters.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>name</term>
+ <listitem>
+ <para>The entity name.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>parameter</term>
+ <listitem>
+ <para>Boolean value to determine whether a parameter entity is created. Default is 'false()'.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>text</term>
+ <listitem>
+ <para>The replacement text. Must be a string.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>nodes</term>
+ <listitem>
+ <para>The replacement text as a nodeset. The nodeset is formatted as XML using the as-xml template. If both text and nodes are specified then nodes takes precedence.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>publicid</term>
+ <listitem>
+ <para>The public identifier for an external entity.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>systemid</term>
+ <listitem>
+ <para>The system identifier for an external entity.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>notation</term>
+ <listitem>
+ <para>The notation for an external entity.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns an entity declaration as a string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='markup:entity-declaration'>
+ <xsl:param name='name'/>
+ <xsl:param name='parameter' select='false()'/>
+ <xsl:param name='text'/>
+ <xsl:param name='nodes'/>
+ <xsl:param name='publicid'/>
+ <xsl:param name='systemid'/>
+ <xsl:param name='notation'/>
+
+ <xsl:if test='string-length($name) = 0'>
+ <xsl:message terminate='yes'>entity name must be specified</xsl:message>
+ </xsl:if>
+ <xsl:if test='string-length($text) &gt; 0 and
+ (string-length($publicid) &gt; 0 or
+ string-length($systemid) &gt; 0 or
+ string-length($notation) &gt; 0)'>
+ <xsl:message terminate='yes'>both replacement text and external identifier specified</xsl:message>
+ </xsl:if>
+
+ <xsl:text disable-output-escaping='yes'>&lt;!ENTITY </xsl:text>
+ <xsl:copy-of select='$name'/>
+ <xsl:text> </xsl:text>
+ <xsl:if test="$parameter">
+ <xsl:text>% </xsl:text>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$nodes">
+ <xsl:call-template name='markup:quote-value'>
+ <xsl:with-param name='value'>
+ <xsl:call-template name="markup:as-xml">
+ <xsl:with-param name="nodes" select="$nodes"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test='$text'>
+ <xsl:call-template name='markup:quote-value'>
+ <xsl:with-param name='value' select='$text'/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name='markup:external-identifier'>
+ <xsl:with-param name='publicid' select='$publicid'/>
+ <xsl:with-param name='systemid' select='$systemid'/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test='$notation'>
+ <xsl:text> NDATA "</xsl:text>
+ <xsl:copy-of select='$notation'/>
+ <xsl:text>"</xsl:text>
+ </xsl:if>
+
+ <xsl:text disable-output-escaping='yes'>&gt;</xsl:text>
+ </xsl:template>
+
+ <doc:template name="markup:quote-value" xmlns="">
+ <refpurpose>Quote an Attribute Value</refpurpose>
+
+ <refdescription>
+ <para>This template returns a quoted value.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>value</term>
+ <listitem>
+ <para>The value to quote.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns a quote value as a string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='markup:quote-value'>
+ <xsl:param name='value'/>
+
+ <xsl:variable name="quoted">
+ <xsl:call-template name='markup:quote-value-aux'>
+ <xsl:with-param name='value' select='$value'/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="contains($value, '&lt;')">
+ <xsl:call-template name='str:subst'>
+ <xsl:with-param name='text' select='$quoted'/>
+ <xsl:with-param name='replace'>&lt;</xsl:with-param>
+ <xsl:with-param name='with'>
+ <xsl:text disable-output-escaping='yes'>&amp;lt;</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select='$quoted'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name='markup:quote-value-aux'>
+ <xsl:param name='value'/>
+
+ <!-- Quoting hell! -->
+ <xsl:variable name="quot">&quot;</xsl:variable>
+ <xsl:variable name="apos">&apos;</xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test='contains($value, $quot) and contains($value, $apos)'>
+ <xsl:text>"</xsl:text>
+ <xsl:call-template name='str:subst'>
+ <xsl:with-param name='text' select='$value'/>
+ <xsl:with-param name='replace'>"</xsl:with-param>
+ <xsl:with-param name='with'>
+ <xsl:text disable-output-escaping='yes'>&amp;quot;</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>"</xsl:text>
+ </xsl:when>
+ <xsl:when test='contains($value, $quot)'>
+ <xsl:text>'</xsl:text>
+ <xsl:value-of select='$value'/>
+ <xsl:text>'</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>"</xsl:text>
+ <xsl:value-of select='$value'/>
+ <xsl:text>"</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="markup:external-identifier" xmlns="">
+ <refpurpose>Create an External Identifier</refpurpose>
+
+ <refdescription>
+ <para>This template returns an external identifier.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>publicid</term>
+ <listitem>
+ <para>The public identifier.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>systemid</term>
+ <listitem>
+ <para>The system identifier.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns an external identifier as a string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='markup:external-identifier'>
+ <xsl:param name='publicid'/>
+ <xsl:param name='systemid'/>
+ <xsl:param name='leading-space' select='false()'/>
+
+ <xsl:choose>
+ <xsl:when test='string-length($publicid) &gt; 0'>
+ <xsl:if test='$leading-space'>
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:text disable-output-escaping='yes'>PUBLIC "</xsl:text>
+ <xsl:value-of select='$publicid' disable-output-escaping='yes'/>
+ <xsl:text disable-output-escaping='yes'>"</xsl:text>
+ <xsl:if test='string-length($systemid) &gt; 0'>
+ <xsl:text disable-output-escaping='yes'> "</xsl:text>
+ <xsl:value-of select='$systemid' disable-output-escaping='yes'/>
+ <xsl:text disable-output-escaping='yes'>"</xsl:text>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="string-length($systemid) &gt; 0">
+ <xsl:if test='$leading-space'>
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:text disable-output-escaping='yes'>SYSTEM "</xsl:text>
+ <xsl:value-of select='$systemid' disable-output-escaping='yes'/>
+ <xsl:text disable-output-escaping='yes'>"</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="markup:entity-reference" xmlns="">
+ <refpurpose>Create an Entity Reference</refpurpose>
+
+ <refdescription>
+ <para>This template returns an entity reference.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>name</term>
+ <listitem>
+ <para>The name of the entity.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns an entity reference as a string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='markup:entity-reference'>
+ <xsl:param name='name'/>
+
+ <xsl:text disable-output-escaping='yes'>&amp;</xsl:text>
+ <xsl:value-of select='$name'/>
+ <xsl:text>;</xsl:text>
+
+ </xsl:template>
+
+ <doc:template name="markup:notation-declaration" xmlns="">
+ <refpurpose>Create a Notation Declaration</refpurpose>
+
+ <refdescription>
+ <para>This template returns a notation declaration.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>name</term>
+ <listitem>
+ <para>The notation name.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>publicid</term>
+ <listitem>
+ <para>The public identifier for the notation.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>systemid</term>
+ <listitem>
+ <para>The system identifier for the notation.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns a notation declaration as a string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='markup:notation-declaration'>
+ <xsl:param name='name'/>
+ <xsl:param name='publicid'/>
+ <xsl:param name='systemid'/>
+
+ <xsl:if test='string-length($name) = 0'>
+ <xsl:message terminate='yes'>notation name must be specified</xsl:message>
+ </xsl:if>
+ <xsl:if test='string-length($publicid) = 0 and string-length($systemid) = 0'>
+ <xsl:message terminate='yes'>external identifier must be specified</xsl:message>
+ </xsl:if>
+
+ <xsl:text disable-output-escaping='yes'>&lt;!NOTATION </xsl:text>
+ <xsl:copy-of select='$name'/>
+
+ <xsl:call-template name='markup:external-identifier'>
+ <xsl:with-param name='publicid' select='$publicid'/>
+ <xsl:with-param name='systemid' select='$systemid'/>
+ <xsl:with-param name='leading-space' select='true()'/>
+ </xsl:call-template>
+
+ <xsl:text disable-output-escaping='yes'>&gt;</xsl:text>
+ </xsl:template>
+
+ <doc:template name="markup:cdata-section" xmlns="">
+ <refpurpose>Create a CDATA Section</refpurpose>
+
+ <refdescription>
+ <para>This template returns a CDATA Section. The XSLT specification provides a mechanism for instructing the XSL processor to output character data in a CDATA section for certain elements, but this template may be useful in those circumstances where not all instances of an element are to have their content placed in a CDATA section.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>text</term>
+ <listitem>
+ <para>The content of the CDATA section.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns a CDATA section as a string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='markup:cdata-section'>
+ <xsl:param name='text'/>
+
+ <xsl:if test="contains($text, ']]&gt;')">
+ <xsl:message terminate="yes">CDATA section contains "]]&gt;"</xsl:message>
+ </xsl:if>
+
+ <xsl:text disable-output-escaping='yes'>&lt;![CDATA[</xsl:text>
+ <xsl:copy-of select='$text'/>
+ <xsl:text disable-output-escaping='yes'>]]&gt;</xsl:text>
+ </xsl:template>
+
+ <doc:template name="markup:as-xml" xmlns="">
+ <refpurpose>Format Nodeset As XML Markup</refpurpose>
+
+ <refdescription>
+ <para>This template returns XML markup. Each node in the given nodeset is converted to its equivalent XML markup.</para>
+
+ <para>BUG: This version may not adequately handle XML Namespaces.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>nodes</term>
+ <listitem>
+ <para>Nodeset to format as XML.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns XML markup.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='markup:as-xml'>
+ <xsl:param name='nodes'/>
+
+ <xsl:if test="$nodes">
+ <xsl:choose>
+ <xsl:when test="$nodes[1]/self::*">
+ <xsl:text disable-output-escaping='yes'>&lt;</xsl:text>
+ <xsl:value-of select="name($nodes[1])"/>
+ <xsl:for-each select="$nodes[1]/@*">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="name()"/>
+ <xsl:text>=</xsl:text>
+ <xsl:call-template name='markup:quote-value'>
+ <xsl:with-param name='value' select='.'/>
+ </xsl:call-template>
+ </xsl:for-each>
+
+ <xsl:choose>
+ <xsl:when test='$nodes[1]/node()'>
+ <xsl:text disable-output-escaping='yes'>&gt;</xsl:text>
+ <xsl:call-template name='markup:as-xml'>
+ <xsl:with-param name='nodes' select='$nodes[1]/node()'/>
+ </xsl:call-template>
+ <xsl:text disable-output-escaping='yes'>&lt;/</xsl:text>
+ <xsl:value-of select="name($nodes[1])"/>
+ <xsl:text disable-output-escaping='yes'>&gt;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text disable-output-escaping='yes'>/&gt;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$nodes[1]/self::text()">
+ <xsl:value-of select="$nodes[1]"/>
+ </xsl:when>
+ <xsl:when test="$nodes[1]/self::comment()">
+ <xsl:text disable-output-escaping='yes'>&lt;!--</xsl:text>
+ <xsl:value-of select="$nodes[1]"/>
+ <xsl:text disable-output-escaping='yes'>--&gt;</xsl:text>
+ </xsl:when>
+ <xsl:when test="$nodes[1]/self::processing-instruction()">
+ <xsl:text disable-output-escaping='yes'>&lt;?</xsl:text>
+ <xsl:value-of select="name($nodes[1])"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$nodes[1]"/>
+ <xsl:text disable-output-escaping='yes'>?&gt;</xsl:text>
+ </xsl:when>
+
+ <xsl:when test="not($nodes[1]/parent::*)"/> <!-- root node -->
+ <xsl:when test="count($nodes[1] | $nodes[1]/../namespace::*) = count($nodes[1]/../namespace::*)"/> <!-- namespace node -->
+ <xsl:when test="count($nodes[1] | $nodes[1]/../@*) = count($nodes[1]/../@*)"/> <!-- attribute node -->
+ </xsl:choose>
+
+ <xsl:call-template name="markup:as-xml">
+ <xsl:with-param name="nodes" select="$nodes[position() &gt; 1]"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/math.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/math.xsl
new file mode 100644
index 0000000..e3e14dd
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/math.xsl
@@ -0,0 +1,704 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://xsltsl.org/xsl/documentation/1.0"
+ xmlns:math="http://xsltsl.org/math"
+ exclude-result-prefixes="doc math">
+
+ <doc:reference xmlns="">
+ <referenceinfo>
+ <releaseinfo role="meta">
+ $Id: math.xsl 3991 2004-11-10 06:51:55Z balls $
+ </releaseinfo>
+ <author>
+ <surname>Ball</surname>
+ <firstname>Steve</firstname>
+ </author>
+ <copyright>
+ <year>2004</year>
+ <year>2002</year>
+ <holder>Steve Ball</holder>
+ </copyright>
+ </referenceinfo>
+
+ <title>Math Module</title>
+
+ <partintro>
+ <section>
+ <title>Introduction</title>
+
+ <para>This module provides mathematical functions.</para>
+ </section>
+ </partintro>
+
+ </doc:reference>
+
+ <doc:template name="math:power" xmlns="">
+ <refpurpose>Power</refpurpose>
+
+ <refdescription>
+ <para>Raises a number to a power.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>base</term>
+ <listitem>
+ <para>The base number. Must be a number.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>power</term>
+ <listitem>
+ <para>The power to raise the number to. Must be an integer.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns base multiplied by itself power times. If the base or power are not numbers or if the power is fractional then an empty string is returned.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="math:power">
+ <xsl:param name="base"/>
+ <xsl:param name="power"/>
+
+ <xsl:choose>
+ <xsl:when test='$power = "0" and $base = "0"'>
+ <xsl:text>1</xsl:text>
+ </xsl:when>
+ <xsl:when test='$power = "0" and number($base)'>
+ <xsl:text>1</xsl:text>
+ </xsl:when>
+ <xsl:when test='$power = "0" and not(number($base))'/>
+ <xsl:when test='$base = "0" and number($power)'>
+ <xsl:text>0</xsl:text>
+ </xsl:when>
+
+ <xsl:when test='not(number($base)) or not(number($power))'/>
+
+ <xsl:when test='floor(number($power)) != number($power)'/>
+
+ <xsl:when test='number($power) &lt; 0'>
+ <xsl:variable name='x'>
+ <xsl:call-template name='math:power'>
+ <xsl:with-param name='base' select='$base'/>
+ <xsl:with-param name='power' select='-1 * $power'/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select='1 div $x'/>
+ </xsl:when>
+
+ <xsl:when test='number($power) = 1'>
+ <xsl:value-of select='$base'/>
+ </xsl:when>
+
+ <xsl:when test='number($power) &gt; 0'>
+ <xsl:variable name='x'>
+ <xsl:call-template name='math:power'>
+ <xsl:with-param name='base' select='$base'/>
+ <xsl:with-param name='power' select='$power - 1'/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select='$base * $x'/>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="math:abs" xmlns="">
+ <refpurpose>Absolute Value</refpurpose>
+
+ <refdescription>
+ <para>Absolute value of a number.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>number</term>
+ <listitem>
+ <para>The number. Must be a number.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns the absolute value of the number.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="math:abs">
+ <xsl:param name="number"/>
+
+ <xsl:choose>
+ <xsl:when test='$number &lt; 0'>
+ <xsl:value-of select='$number * -1'/>
+ </xsl:when>
+ <xsl:when test='$number >= 0'>
+ <xsl:value-of select='$number'/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="math:cvt-hex-decimal" xmlns="">
+ <refpurpose>Conversion</refpurpose>
+
+ <refdescription>
+ <para>Converts a hexidecimal value to a decimal value.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>value</term>
+ <listitem>
+ <para>The hexidecimal number. Must be a number in hexidecimal format.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns the value as a decimal string. If the value is not a number then a NaN value is returned.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="math:cvt-hex-decimal">
+ <xsl:param name="value"/>
+
+ <xsl:choose>
+ <xsl:when test='$value = ""'/>
+
+ <xsl:when test='string-length($value) = 1'>
+ <xsl:call-template name='math:cvt-hex-decimal-digit'>
+ <xsl:with-param name='digit' select='$value'/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name='first-digit'>
+ <xsl:call-template name='math:cvt-hex-decimal-digit'>
+ <xsl:with-param name='digit' select='substring($value, 1, 1)'/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name='remainder'>
+ <xsl:call-template name='math:cvt-hex-decimal'>
+ <xsl:with-param name='value' select='substring($value, 2)'/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:value-of select='$first-digit * 16 + $remainder'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name='math:cvt-hex-decimal-digit'>
+ <xsl:param name='digit' select='0'/>
+ <xsl:choose>
+ <xsl:when test='$digit &lt;= 9'>
+ <xsl:value-of select='$digit'/>
+ </xsl:when>
+ <xsl:when test='$digit = "a" or $digit = "A"'>10</xsl:when>
+ <xsl:when test='$digit = "b" or $digit = "B"'>11</xsl:when>
+ <xsl:when test='$digit = "c" or $digit = "C"'>12</xsl:when>
+ <xsl:when test='$digit = "d" or $digit = "D"'>13</xsl:when>
+ <xsl:when test='$digit = "e" or $digit = "E"'>14</xsl:when>
+ <xsl:when test='$digit = "f" or $digit = "F"'>15</xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="math:cvt-decimal-hex" xmlns="">
+ <refpurpose>Conversion</refpurpose>
+
+ <refdescription>
+ <para>Converts a decimal value to a hexidecimal value.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>value</term>
+ <listitem>
+ <para>The decimal number.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns the value as a hexidecimal string (lowercase). If the value is not a number then a NaN value is returned.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="math:cvt-decimal-hex">
+ <xsl:param name="value"/>
+
+ <xsl:choose>
+ <xsl:when test='$value = "0"'>0</xsl:when>
+ <xsl:when test='not(number($value))'>NaN</xsl:when>
+
+ <xsl:when test='$value div 16 >= 1'>
+ <xsl:call-template name='math:cvt-decimal-hex'>
+ <xsl:with-param name='value' select='floor($value div 16)'/>
+ </xsl:call-template>
+ <xsl:call-template name='math:cvt-decimal-hex'>
+ <xsl:with-param name='value' select='$value mod 16'/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test='$value = 10'>a</xsl:when>
+ <xsl:when test='$value = 11'>b</xsl:when>
+ <xsl:when test='$value = 12'>c</xsl:when>
+ <xsl:when test='$value = 13'>d</xsl:when>
+ <xsl:when test='$value = 14'>e</xsl:when>
+ <xsl:when test='$value = 15'>f</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select='$value'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="math:ordinal" xmlns="">
+ <refpurpose>Ordinal number</refpurpose>
+
+ <refdescription>
+ <para>Gives the ordinal number of a given counting number. For example, 1 becomes "1st".</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>number</term>
+ <listitem>
+ <para>An integer number.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns the number with an ordinal suffix.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="math:ordinal">
+ <xsl:param name="number"/>
+
+ <xsl:choose>
+ <xsl:when test='$number &lt; 0'/>
+ <xsl:otherwise>
+ <xsl:value-of select='$number'/>
+ <xsl:choose>
+ <xsl:when test='$number = 11 or $number = 12 or $number = 13'>th</xsl:when>
+ <xsl:when test='$number mod 10 = 1'>st</xsl:when>
+ <xsl:when test='$number mod 10 = 2'>nd</xsl:when>
+ <xsl:when test='$number mod 10 = 3'>rd</xsl:when>
+ <xsl:otherwise>th</xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <doc:template name="math:ordinal-as-word" xmlns="">
+ <refpurpose>Returns an ordinal number</refpurpose>
+
+ <refdescription>
+ <para>This template returns the ordinal number for a given counting number as a word. For example "first" for 1.</para>
+ <para>Only handles numbers less than 10000000 (ten million).</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>number</term>
+ <listitem>
+ <para>The counting number.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>conjunctive</term>
+ <listitem>
+ <para>Whether to add the word "and" to the result, for example "one hundred and first" rather than "one hundred first". Default is "yes".</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns the ordinal number as a string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="math:ordinal-as-word">
+ <xsl:param name="number" select="0"/>
+ <xsl:param name='conjunctive' select='"yes"'/>
+ <xsl:param name='preceding' select='0'/>
+
+ <xsl:choose>
+ <xsl:when test='$preceding = 1 and $number = 0'/>
+ <xsl:when test='$number = 0'>zeroth</xsl:when>
+
+ <xsl:when test="$number &lt; 1 or $number != floor($number)"/>
+
+ <xsl:when test='$number = 1'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>first</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 2'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>second</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 3'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>third</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 4'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>fourth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 5'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>fifth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 6'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>sixth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 7'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>seventh</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 8'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>eighth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 9'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>ninth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 10'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>tenth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 11'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>eleventh</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 12'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>twelveth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 13'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>thirteenth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 14'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>fourteenth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 15'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>fifteenth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 16'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>sixteenth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 17'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>seventeenth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 18'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>eighteenth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 19'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>nineteenth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 20'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>twentieth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 30'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>thirtieth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 40'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>fortieth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 50'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>fiftieth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 60'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>sixtieth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 70'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>seventieth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 80'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>eightieth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number = 90'>
+ <xsl:if test='$preceding = 1'> and </xsl:if>
+ <xsl:text>ninetieth</xsl:text>
+ </xsl:when>
+
+ <xsl:when test='$number mod 1000000 = 0'>
+ <xsl:call-template name='math:number-as-word'>
+ <xsl:with-param name='number' select='floor($number div 1000000)'/>
+ </xsl:call-template>
+ <xsl:text> millionth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number &lt; 1000000 and $number mod 1000 = 0'>
+ <xsl:if test='$preceding = 1 and $conjunctive'> and </xsl:if>
+ <xsl:call-template name='math:number-as-word'>
+ <xsl:with-param name='number' select='floor($number div 1000)'/>
+ </xsl:call-template>
+ <xsl:text> thousandth</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number &lt; 1000 and $number mod 100 = 0'>
+ <xsl:if test='$preceding = 1 and $conjunctive'> and </xsl:if>
+ <xsl:call-template name='math:number-as-word'>
+ <xsl:with-param name='number' select='floor($number div 100)'/>
+ </xsl:call-template>
+ <xsl:text> hundredth</xsl:text>
+ </xsl:when>
+
+ <xsl:when test='$number &gt; 1000000'>
+ <xsl:if test='$preceding = 1'>
+ <xsl:text> </xsl:text>
+ <xsl:if test='$conjunctive'>and </xsl:if>
+ </xsl:if>
+ <xsl:call-template name='math:number-as-word'>
+ <xsl:with-param name='number' select='floor($number div 1000000) * 1000000'/>
+ </xsl:call-template>
+ <xsl:choose>
+ <xsl:when
+ test='(floor(floor(($number mod 1000000) + 0.1) div 100000) > 0 and $number mod 100000 > 0) or
+ (floor(floor(($number mod 100000) + 0.1) div 10000) > 0 and $number mod 10000 > 0) or
+ (floor(floor(($number mod 10000) + 0.1) div 1000) > 0 and $number mod 1000 > 0) or
+ (floor(floor(($number mod 1000) + 0.1) div 100) > 0 and $number mod 100 > 0) or
+ (floor(floor(($number mod 100) + 0.1) div 10) > 0 and $number mod 10 > 0 and $number mod 100 > 20)'>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name='math:ordinal-as-word'>
+ <xsl:with-param name='number' select='floor(($number mod 1000000) + 0.1)'/>
+ <xsl:with-param name='conjunctive' select='$conjunctive'/>
+ <xsl:with-param name='preceding' select='0'/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name='math:ordinal-as-word'>
+ <xsl:with-param name='number' select='floor(($number mod 1000000) + 0.1)'/>
+ <xsl:with-param name='conjunctive' select='$conjunctive'/>
+ <xsl:with-param name='preceding' select='1'/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test='$number &gt; 1000'>
+ <xsl:if test='$preceding = 1'>
+ <xsl:text> </xsl:text>
+ <xsl:if test='$conjunctive'>and </xsl:if>
+ </xsl:if>
+ <xsl:call-template name='math:number-as-word'>
+ <xsl:with-param name='number' select='floor($number div 1000) * 1000'/>
+ <xsl:with-param name='conjunctive' select='$conjunctive'/>
+ </xsl:call-template>
+ <xsl:choose>
+ <xsl:when test='floor(floor(($number mod 1000) + 0.1) div 100) > 0'>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name='math:ordinal-as-word'>
+ <xsl:with-param name='number' select='floor(($number mod 1000) + 0.1)'/>
+ <xsl:with-param name='conjunctive' select='$conjunctive'/>
+ <xsl:with-param name='preceding' select='0'/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name='math:ordinal-as-word'>
+ <xsl:with-param name='number' select='floor(($number mod 1000) + 0.1)'/>
+ <xsl:with-param name='conjunctive' select='$conjunctive'/>
+ <xsl:with-param name='preceding' select='1'/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test='$number &gt; 100'>
+ <xsl:if test='$preceding = 1'>
+ <xsl:text> </xsl:text>
+ <xsl:if test='$conjunctive'>and </xsl:if>
+ </xsl:if>
+ <xsl:call-template name='math:number-as-word'>
+ <xsl:with-param name='number' select='floor($number div 100) * 100'/>
+ </xsl:call-template>
+ <xsl:call-template name='math:ordinal-as-word'>
+ <xsl:with-param name='number' select='floor(($number mod 100) + 0.1)'/>
+ <xsl:with-param name='conjunctive' select='$conjunctive'/>
+ <xsl:with-param name='preceding' select='1'/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test='$number &gt; 20'>
+ <xsl:if test='$preceding = 1'>
+ <xsl:text> </xsl:text>
+ <xsl:if test='$conjunctive'>and </xsl:if>
+ </xsl:if>
+ <xsl:call-template name='math:number-as-word'>
+ <xsl:with-param name='number' select='floor($number div 10) * 10'/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name='math:ordinal-as-word'>
+ <xsl:with-param name='number' select='floor(($number mod 10) + 0.1)'/>
+ <xsl:with-param name='conjunctive' select='$conjunctive'/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="math:number-as-word" xmlns="">
+ <refpurpose>Returns a number as a word</refpurpose>
+
+ <refdescription>
+ <para>This template returns the word for a given integer number, for example "one" for 1.</para>
+ <para>Only handles numbers less than 10000000 (ten million).</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>number</term>
+ <listitem>
+ <para>The counting number.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>conjunctive</term>
+ <listitem>
+ <para>Adds the word "and" where appropriate, for example.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns the number as a string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="math:number-as-word">
+ <xsl:param name="number" select="0"/>
+ <xsl:param name='conjunctive' select='true()'/>
+
+ <xsl:choose>
+
+ <xsl:when test='$number = 0'>zero</xsl:when>
+
+ <xsl:when test='$number &lt; 0'>
+ <xsl:text>minus </xsl:text>
+ <xsl:call-template name='math:number-as-word'>
+ <xsl:with-param name='number' select='-1 * $number'/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$number != floor($number)"/>
+
+ <xsl:when test='$number mod 1000000 = 0'>
+ <xsl:call-template name='math:number-as-word'>
+ <xsl:with-param name='number' select='floor($number div 1000000)'/>
+ </xsl:call-template>
+ <xsl:text> million</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number &gt;= 1000000'>
+ <xsl:call-template name='math:number-as-word'>
+ <xsl:with-param name='number' select='floor($number div 1000000)'/>
+ </xsl:call-template>
+ <xsl:text> million </xsl:text>
+ <xsl:call-template name='math:number-as-word'>
+ <xsl:with-param name='number' select='floor(($number mod 1000000) + 0.1)'/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test='$number mod 1000 = 0'>
+ <xsl:call-template name='math:number-as-word'>
+ <xsl:with-param name='number' select='floor($number div 1000)'/>
+ </xsl:call-template>
+ <xsl:text> thousand</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number &gt;= 1000'>
+ <xsl:call-template name='math:number-as-word'>
+ <xsl:with-param name='number' select='floor($number div 1000)'/>
+ </xsl:call-template>
+ <xsl:text> thousand </xsl:text>
+ <xsl:if test='$conjunctive and floor(floor(($number mod 1000) + 0.1) div 100) = 0'>and </xsl:if>
+ <xsl:call-template name='math:number-as-word'>
+ <xsl:with-param name='number' select='floor(($number mod 1000) + 0.1)'/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test='$number mod 100 = 0'>
+ <xsl:call-template name='math:number-as-word'>
+ <xsl:with-param name='number' select='floor($number div 100)'/>
+ </xsl:call-template>
+ <xsl:text> hundred</xsl:text>
+ </xsl:when>
+ <xsl:when test='$number &gt;= 100'>
+ <xsl:call-template name='math:number-as-word'>
+ <xsl:with-param name='number' select='floor($number div 100)'/>
+ </xsl:call-template>
+ <xsl:text> hundred </xsl:text>
+ <xsl:if test='$conjunctive'>and </xsl:if>
+ <xsl:call-template name='math:number-as-word'>
+ <xsl:with-param name='number' select='floor(($number mod 100) + 0.1)'/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test='$number = 1'>one</xsl:when>
+ <xsl:when test='$number = 2'>two</xsl:when>
+ <xsl:when test='$number = 3'>three</xsl:when>
+ <xsl:when test='$number = 4'>four</xsl:when>
+ <xsl:when test='$number = 5'>five</xsl:when>
+ <xsl:when test='$number = 6'>six</xsl:when>
+ <xsl:when test='$number = 7'>seven</xsl:when>
+ <xsl:when test='$number = 8'>eight</xsl:when>
+ <xsl:when test='$number = 9'>nine</xsl:when>
+ <xsl:when test='$number = 10'>ten</xsl:when>
+ <xsl:when test='$number = 11'>eleven</xsl:when>
+ <xsl:when test='$number = 12'>twelve</xsl:when>
+ <xsl:when test='$number = 13'>thirteen</xsl:when>
+ <xsl:when test='$number = 14'>fourteen</xsl:when>
+ <xsl:when test='$number = 15'>fifteen</xsl:when>
+ <xsl:when test='$number = 16'>sixteen</xsl:when>
+ <xsl:when test='$number = 17'>seventeen</xsl:when>
+ <xsl:when test='$number = 18'>eighteen</xsl:when>
+ <xsl:when test='$number = 19'>nineteen</xsl:when>
+ <xsl:when test='$number = 20'>twenty</xsl:when>
+ <xsl:when test='$number = 30'>thirty</xsl:when>
+ <xsl:when test='$number = 40'>forty</xsl:when>
+ <xsl:when test='$number = 50'>fifty</xsl:when>
+ <xsl:when test='$number = 60'>sixty</xsl:when>
+ <xsl:when test='$number = 70'>seventy</xsl:when>
+ <xsl:when test='$number = 80'>eighty</xsl:when>
+ <xsl:when test='$number = 90'>ninety</xsl:when>
+
+ <xsl:when test='$number &lt; 100'>
+ <xsl:call-template name='math:number-as-word'>
+ <xsl:with-param name='number' select='floor($number div 10) * 10'/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name='math:number-as-word'>
+ <xsl:with-param name='number' select='floor(($number mod 10) + 0.1)'/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
+
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/node.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/node.xsl
new file mode 100644
index 0000000..bf4fd7f
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/node.xsl
@@ -0,0 +1,229 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://xsltsl.org/xsl/documentation/1.0"
+ xmlns:node="http://xsltsl.org/node"
+ extension-element-prefixes="doc node">
+
+ <doc:reference xmlns="">
+ <referenceinfo>
+ <releaseinfo role="meta">
+ $Id: node.xsl 3991 2004-11-10 06:51:55Z balls $
+ </releaseinfo>
+ <author>
+ <surname>Ball</surname>
+ <firstname>Steve</firstname>
+ </author>
+ <copyright>
+ <year>2001</year>
+ <holder>Steve Ball</holder>
+ </copyright>
+ </referenceinfo>
+
+ <title>Node Templates</title>
+
+ <partintro>
+ <section>
+ <title>Introduction</title>
+
+ <para>This stylesheet module provides functions for reporting on or manipulating nodes and nodesets.</para>
+
+ </section>
+ </partintro>
+
+ </doc:reference>
+
+ <doc:template name="node:xpath" xmlns="">
+ <refpurpose>Returns an XPath location path</refpurpose>
+
+ <refdescription>
+ <para>This template returns an XPath location path that uniquely identifies the given node within the document.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>node</term>
+ <listitem>
+ <para>The node to create an XPath for. If this parameter is given as a nodeset, then the first node in the nodeset is used.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns an XPath location path as a string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="node:xpath">
+ <xsl:param name="node" select="."/>
+
+ <xsl:choose>
+
+ <xsl:when test="$node">
+
+ <xsl:for-each select="$node[1]/ancestor-or-self::*">
+ <xsl:text/>/<xsl:value-of select="name()"/>
+ <xsl:text/>[<xsl:value-of select="count(preceding-sibling::*[name() = name(current())]) + 1"/>]<xsl:text/>
+ </xsl:for-each>
+
+ <xsl:choose>
+
+ <xsl:when test="$node[1]/self::comment()">
+ <xsl:text>/comment()</xsl:text>
+ <xsl:text/>[<xsl:value-of select="count($node[1]/preceding-sibling::comment()) + 1" />]<xsl:text/>
+ </xsl:when>
+
+ <xsl:when test="$node[1]/self::processing-instruction()">
+ <xsl:text>/processing-instruction()</xsl:text>
+ <xsl:text/>[<xsl:value-of select="count($node[1]/preceding-sibling::processing-instruction()) + 1" />]<xsl:text/>
+ </xsl:when>
+
+ <xsl:when test="$node[1]/self::text()">
+ <xsl:text>/text()</xsl:text>
+ <xsl:text/>[<xsl:value-of select="count($node[1]/preceding-sibling::text()) + 1" />]<xsl:text/>
+ </xsl:when>
+
+ <xsl:when test="not($node[1]/..)">
+ <xsl:text>/</xsl:text>
+ </xsl:when>
+
+ <xsl:when test="count($node[1]/../namespace::* | $node[1]) = count($node[1]/../namespace::*)">
+ <xsl:text/>/namespace::<xsl:value-of select="name($node[1])" />
+ </xsl:when>
+
+ <xsl:when test="count($node[1]/../@* | $node[1]) = count($node[1]/../@*)">
+ <xsl:text/>/@<xsl:value-of select="name($node[1])" />
+ </xsl:when>
+
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:text>/..</xsl:text>
+ </xsl:otherwise>
+
+ </xsl:choose>
+
+ </xsl:template>
+
+ <doc:template name="node:type" xmlns="">
+ <refpurpose>Return node type</refpurpose>
+
+ <refdescription>
+ <para>Returns the type of a node as a string.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>node</term>
+ <listitem>
+ <para>The node to get the type for. If this parameter is given as a nodeset, then the first node in the nodeset is used.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns node type as a string. Values returned are:</para>
+ <variablelist>
+ <varlistentry>
+ <term>Element</term>
+ <listitem>
+ <para><literal>element</literal></para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Text Node</term>
+ <listitem>
+ <para><literal>text</literal></para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Comment</term>
+ <listitem>
+ <para><literal>comment</literal></para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Processing Instruction</term>
+ <listitem>
+ <para><literal>processing instruction</literal></para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="node:type">
+ <xsl:param name="node" select="."/>
+
+ <xsl:choose>
+ <xsl:when test="not($node)"/>
+ <xsl:when test="$node[1]/self::*">
+ <xsl:text>element</xsl:text>
+ </xsl:when>
+ <xsl:when test="$node[1]/self::text()">
+ <xsl:text>text</xsl:text>
+ </xsl:when>
+ <xsl:when test="$node[1]/self::comment()">
+ <xsl:text>comment</xsl:text>
+ </xsl:when>
+ <xsl:when test="$node[1]/self::processing-instruction()">
+ <xsl:text>processing instruction</xsl:text>
+ </xsl:when>
+ <xsl:when test="not($node[1]/parent::*)">
+ <xsl:text>root</xsl:text>
+ </xsl:when>
+ <xsl:when test="count($node[1] | $node[1]/../namespace::*) = count($node[1]/../namespace::*)">
+ <xsl:text>namespace</xsl:text>
+ </xsl:when>
+ <xsl:when test="count($node[1] | $node[1]/../@*) = count($node[1]/../@*)">
+ <xsl:text>attribute</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="node:copy" xmlns="">
+ <refpurpose>Copy Nodes</refpurpose>
+
+ <refdescription>
+ <para>Makes a copy of the given nodes, including attributes and descendants.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>nodes</term>
+ <listitem>
+ <para>The nodes to copy.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns the copied nodes as a result tree fragment.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='node:copy'>
+ <xsl:param name='nodes' select='.'/>
+
+ <xsl:for-each select='$nodes'>
+ <xsl:copy>
+ <xsl:for-each select='@*'>
+ <xsl:copy/>
+ </xsl:for-each>
+
+ <xsl:for-each select='node()'>
+ <xsl:call-template name='node:copy'/>
+ </xsl:for-each>
+ </xsl:copy>
+ </xsl:for-each>
+ </xsl:template>
+</xsl:stylesheet>
+
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/stdlib.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/stdlib.xsl
new file mode 100644
index 0000000..c014f13
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/stdlib.xsl
@@ -0,0 +1,340 @@
+<?xml version="1.0"?>
+<!DOCTYPE xsl:stylesheet [
+ <!ENTITY version "1.2.1">
+]>
+
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://xsltsl.org/xsl/documentation/1.0"
+ exclude-result-prefixes="doc"
+ version="1.0">
+
+ <xsl:import href="string.xsl"/>
+ <xsl:import href="date-time.xsl"/>
+ <xsl:import href="node.xsl"/>
+ <xsl:import href="uri.xsl"/>
+ <xsl:import href="markup.xsl"/>
+ <xsl:import href="math.xsl"/>
+ <xsl:import href="cmp.xsl"/>
+
+ <xsl:import href="svg.xsl"/>
+<!--
+ <xsl:import href="html/html.xsl"/>
+ <xsl:import href="fo/fo.xsl"/>
+-->
+
+ <!-- For a new module, add an import element here -->
+ <xsl:import href="example.xsl"/>
+
+ <doc:book xmlns="">
+ <bookinfo>
+ <title>XSLT Standard Library</title>
+ <subtitle>Version &version;</subtitle>
+ <!-- $Id: stdlib.xsl 3991 2004-11-10 06:51:55Z balls $ -->
+
+ <author>
+ <surname>Ball</surname>
+ <firstname>Steve</firstname>
+ </author>
+ <copyright>
+ <year>2004</year>
+ <year>2002</year>
+ <holder>Steve Ball</holder>
+ </copyright>
+ </bookinfo>
+
+ <preface>
+ <para>The <ulink url="http://www.w3.org/Style/XSL">XSLT</ulink> Standard Library, <acronym>xsltsl</acronym>, provides the XSLT developer with a set of XSLT templates for commonly used functions. These are implemented purely in XSLT, that is they do not use any extensions.</para>
+ <para><acronym>xsltsl</acronym> is a <ulink url="http://sourceforge.net/projects/xsltsl/">SourceForge project</ulink>.</para>
+ <para><ulink url="http://sourceforge.net/"><inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="sflogo.gif" width="88" height="31"/>
+ </imageobject>
+ <textobject>
+ <phrase>SourceForge Logo</phrase>
+ </textobject>
+ </inlinemediaobject></ulink></para>
+ <para>Goals of the <acronym>xsltsl</acronym> project include:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Provision of a high-quality library of XSLT templates, suitable for inclusion by vendors in XSLT processor software products.</para>
+ </listitem>
+ <listitem>
+ <para>Demonstration of best practice in XSLT stylesheet development and documentation.</para>
+ </listitem>
+ <listitem>
+ <para>Provide examples of various techniques used to develop XSLT stylesheets (ie. a working FAQ).</para>
+ </listitem>
+ </itemizedlist>
+ </preface>
+
+ <chapter>
+ <title>Using The Library</title>
+
+ <para>There are two ways of using the library:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Use a local copy of the library.</para>
+ <orderedlist>
+ <listitem>
+ <para>Download the distribution (see below).</para>
+ </listitem>
+ <listitem>
+ <para>Unpack the distribution, using either gunzip/tar or unzip.</para>
+ </listitem>
+ <listitem>
+ <para>In your stylesheet import or include either the main stylesheet, <filename>stdlib.xsl</filename>, or the stylesheet module you wish to use, such as <filename>string.xsl</filename>. This example assumes that the distribution has been extracted into the same directory as your own stylesheet:</para>
+ <informalexample>
+ <programlisting><![CDATA[
+<xsl:import href="stdlib.xsl"/>
+]]></programlisting>
+ </informalexample>
+ </listitem>
+ </orderedlist>
+ </listitem>
+ <listitem>
+ <para>Import or include either the main stylesheet, or the stylesheet module you wish to use, directly from the library website; http://xsltsl.sourceforge.net/modules/. The <filename>modules</filename> directory always contains the latest stable release. For example:</para>
+ <informalexample>
+ <programlisting><![CDATA[
+<xsl:import href="http://xsltsl.sourceforge.net/modules/stdlib.xsl"/>
+]]></programlisting>
+ </informalexample>
+ <para>Older versions of the library are available in subdirectories. For example, to access version 1.1 of the library use:</para>
+ <informalexample>
+ <programlisting><![CDATA[
+<xsl:import href="http://xsltsl.sourceforge.net/modules/1.1/stdlib.xsl"/>
+]]></programlisting>
+ </informalexample>
+ </listitem>
+ </itemizedlist>
+ <para>Next, add XML Namespace declarations for the modules you wish to use. For example, to use templates from the string module, your stylesheet should have the following declaration:</para>
+ <informalexample>
+ <programlisting><![CDATA[
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:str="http://xsltsl.org/string">
+
+<xsl:import href="http://xsltsl.sourceforge.net/modules/stdlib.xsl"/>
+]]></programlisting>
+ </informalexample>
+ <para>Finally, use a template with the <sgmltag>call-template</sgmltag> element. Most templates require parameters, which are passed using the <sgmltag>with-param</sgmltag> element. For example:</para>
+ <informalexample>
+ <programlisting><![CDATA[
+<xsl:template match="foo">
+ <xsl:call-template name="str:subst">
+ <xsl:with-param name="text" select="."/>
+ <xsl:with-param name="replace">a word</xsl:with-param>
+ <xsl:with-param name="with">another word</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+]]></programlisting>
+ </informalexample>
+ </chapter>
+
+ <chapter>
+ <title>Obtaining The Library</title>
+
+ <para>The XSLT Standard Library is available for download as either:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Gzip'd tarball: <ulink url="http://prdownloads.sourceforge.net/xsltsl/xsltsl-&version;.tar.gz">http://prdownloads.sourceforge.net/xsltsl/xsltsl-&version;.tar.gz</ulink></para>
+ </listitem>
+ <listitem>
+ <para>Zip file: <ulink url="http://prdownloads.sourceforge.net/xsltsl/xsltsl-&version;.zip">http://prdownloads.sourceforge.net/xsltsl/xsltsl-&version;.zip</ulink></para>
+ </listitem>
+ </itemizedlist>
+ </chapter>
+
+ <chapter>
+ <title>Getting Involved</title>
+
+ <para>Contributions to the project are most welcome, and may be in the form of stylesheet modules, patches, bug reports or sample code. Any contributed code must use the LGPL license to be accepted into the library.</para>
+
+ <para>See the SourceForge Project Page <ulink url="http://sourceforge.net/projects/xsltsl/">http://sourceforge.net/projects/xsltsl/</ulink> for information on the development of the project. Bug reports may be submitted here.</para>
+
+ <para>See the project Web Page <ulink url="http://xsltsl.sourceforge.net/">http://xsltsl.sourceforge.net/</ulink> for documentation.</para>
+
+ <para>There are three mailing lists for the project:</para>
+ <variablelist>
+ <varlistentry>
+ <term><email>xsltsl-users@lists.sourceforge.net</email></term>
+ <listitem>
+ <para>Discussion of the use of <acronym>xsltsl</acronym>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><email>xsltsl-devel@lists.sourceforge.net</email></term>
+ <listitem>
+ <para>Discussion of the development of <acronym>xsltsl</acronym>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><email>xsltsl-announce@lists.sourceforge.net</email></term>
+ <listitem>
+ <para>Project announcements.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </chapter>
+
+ <chapter>
+ <title>XML Namespaces</title>
+
+ <para>Apart from the XSLT XML Namespace (http://www.w3.org/1999/XSL/Transform), <acronym>xsltsl</acronym> employs a number of XML Namespaces to allow inclusion of the library in developer stylesheets. In addition, documentation is defined in a separate namespace.</para>
+ <para>Each module is allocated a namespace URI by appending the module name to the URI for the project, http://xsltsl.org/. For example, the string module has the namespace URI http://xsltsl.org/string.</para>
+ <para>All documentation is written using an <ulink url="docbook-extensions.html">extension</ulink> of <ulink url="http://www.docbook.org/">DocBook</ulink> designed for <ulink url="docbook-extensions.html">embedding DocBook into XSLT stylesheets</ulink>. The namespace URI for DocBook embedded in stylesheets is http://xsltsl.org/xsl/documentation/1.0</para>
+ </chapter>
+
+ <chapter>
+ <title>Engineering Standards</title>
+
+ <para>In order to maintain a high engineering standard, all modules and contributions to the <acronym>xsltsl</acronym> project must adhere to the following coding and documentation standards. Submissions which do not meet (or exceed) this standard will not be accepted.</para>
+ <itemizedlist>
+ <listitem>
+ <para>All stylesheets must be indented, with each level indented by two spaces. NB. a simple stylesheet could be used to enforce/fix this.</para>
+ </listitem>
+ <listitem>
+ <para>Templates are named using a qualified name (QName). The namespace URI for the template's containing stylesheet is assigned as above.</para>
+ </listitem>
+ <listitem>
+ <para>Parameters for templates should use sensible names. Where possible (or if in doubt), follow these conventions:</para>
+ <itemizedlist>
+ <listitem>
+ <para>A parameter containing a single node is named <parametername>node</parametername>. Where more than one parameter contains a single node, the suffix <parametername>Node</parametername> is appended to the parameter name, eg. <parametername>referenceNode</parametername></para>
+ </listitem>
+ <listitem>
+ <para>A parameter which potentially contains multiple nodes is named <parametername>nodes</parametername>. Where more than one parameter potentially contains multiple nodes, the suffix <parametername>Nodes</parametername> is appended to the parameter name, eg. <parametername>copyNodes</parametername></para>
+ </listitem>
+ <listitem>
+ <para>A parameter which contains a string value is named <parametername>text</parametername>.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>All templates in each stylesheet must be documented. A template is documented as a <ulink url="http://www.docbook.org/">DocBook</ulink> RefEntry.</para>
+ </listitem>
+ <listitem>
+ <para>Every stylesheet must include a test suite. The test system is in the <filename>test</filename> subdirectory. See <ulink url="test/test.html">test/test.html</ulink> for further details.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>An <ulink url="example.xsl">example stylesheet</ulink> has been provided, which acts as a template for new stylesheet modules.</para>
+
+ </chapter>
+
+ <chapter>
+ <title>Related Work</title>
+
+ <para>The <ulink url="http://www.exslt.org/">EXSLT</ulink> project is creating a library to standardise extension functions. The XSLT Standard Library is complementary to the EXSLT project.</para>
+
+ </chapter>
+
+ <chapter>
+ <title>Reference Documentation</title>
+
+ <para>Reference documentation is available for each module.</para>
+
+ <section>
+ <title>String Processing</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="string.html">string.xsl</ulink></para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Nodes</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="node.html">node.xsl</ulink></para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Date/Time Processing</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="date-time.html">date-time.xsl</ulink></para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Mathematics</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="math.html">math.xsl</ulink></para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>URI (Uniform Resource Identifier) Processing</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="uri.html">uri.xsl</ulink></para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Comparing Nodesets</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="cmp.html">cmp.xsl</ulink></para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Generating XML Markup</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="markup.html">markup.xsl</ulink></para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Presentation Media Support</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Scalable Vector Graphics: <ulink url="svg.html">svg.xsl</ulink></para>
+ </listitem>
+<!--
+ <listitem>
+ <para><ulink url="html/html.html">html/html.xsl</ulink></para>
+ </listitem>
+ <listitem>
+ <para><ulink url="fo/fo.html">fo/fo.xsl</ulink></para>
+ </listitem>
+-->
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Example</title>
+
+ <!-- Add a new module in a similar fashion -->
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="example.html">example.xsl</ulink></para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ </chapter>
+
+ </doc:book>
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/string.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/string.xsl
new file mode 100644
index 0000000..e7eef8b
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/string.xsl
@@ -0,0 +1,1233 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://xsltsl.org/xsl/documentation/1.0"
+ xmlns:str="http://xsltsl.org/string"
+ extension-element-prefixes="doc str">
+
+ <doc:reference xmlns="">
+ <referenceinfo>
+ <releaseinfo role="meta">
+ $Id: string.xsl 3991 2004-11-10 06:51:55Z balls $
+ </releaseinfo>
+ <author>
+ <surname>Ball</surname>
+ <firstname>Steve</firstname>
+ </author>
+ <copyright>
+ <year>2002</year>
+ <year>2001</year>
+ <holder>Steve Ball</holder>
+ </copyright>
+ </referenceinfo>
+
+ <title>String Processing</title>
+
+ <partintro>
+ <section>
+ <title>Introduction</title>
+
+ <para>This module provides templates for manipulating strings.</para>
+
+ </section>
+ </partintro>
+
+ </doc:reference>
+
+ <!-- Common string constants and datasets as XSL variables -->
+
+ <!-- str:lower and str:upper contain pairs of lower and upper case
+ characters. Below insanely long strings should contain the
+ official lower/uppercase pairs, making this stylesheet working
+ for every language on earth. Hopefully. -->
+ <!-- These values are not enough, however. There are some
+ exceptions, dealt with below. -->
+ <xsl:variable name="xsltsl-str-lower" select="'&#x0061;&#x0062;&#x0063;&#x0064;&#x0065;&#x0066;&#x0067;&#x0068;&#x0069;&#x006A;&#x006B;&#x006C;&#x006D;&#x006E;&#x006F;&#x0070;&#x0071;&#x0072;&#x0073;&#x0074;&#x0075;&#x0076;&#x0077;&#x0078;&#x0079;&#x007A;&#x00B5;&#x00E0;&#x00E1;&#x00E2;&#x00E3;&#x00E4;&#x00E5;&#x00E6;&#x00E7;&#x00E8;&#x00E9;&#x00EA;&#x00EB;&#x00EC;&#x00ED;&#x00EE;&#x00EF;&#x00F0;&#x00F1;&#x00F2;&#x00F3;&#x00F4;&#x00F5;&#x00F6;&#x00F8;&#x00F9;&#x00FA;&#x00FB;&#x00FC;&#x00FD;&#x00FE;&#x00FF;&#x0101;&#x0103;&#x0105;&#x0107;&#x0109;&#x010B;&#x010D;&#x010F;&#x0111;&#x0113;&#x0115;&#x0117;&#x0119;&#x011B;&#x011D;&#x011F;&#x0121;&#x0123;&#x0125;&#x0127;&#x0129;&#x012B;&#x012D;&#x012F;&#x0131;&#x0133;&#x0135;&#x0137;&#x013A;&#x013C;&#x013E;&#x0140;&#x0142;&#x0144;&#x0146;&#x0148;&#x014B;&#x014D;&#x014F;&#x0151;&#x0153;&#x0155;&#x0157;&#x0159;&#x015B;&#x015D;&#x015F;&#x0161;&#x0163;&#x0165;&#x0167;&#x0169;&#x016B;&#x016D;&#x016F;&#x0171;&#x0173;&#x0175;&#x0177;&#x017A;&#x017C;&#x017E;&#x017F;&#x0183;&#x0185;&#x0188;&#x018C;&#x0192;&#x0195;&#x0199;&#x01A1;&#x01A3;&#x01A5;&#x01A8;&#x01AD;&#x01B0;&#x01B4;&#x01B6;&#x01B9;&#x01BD;&#x01BF;&#x01C5;&#x01C6;&#x01C8;&#x01C9;&#x01CB;&#x01CC;&#x01CE;&#x01D0;&#x01D2;&#x01D4;&#x01D6;&#x01D8;&#x01DA;&#x01DC;&#x01DD;&#x01DF;&#x01E1;&#x01E3;&#x01E5;&#x01E7;&#x01E9;&#x01EB;&#x01ED;&#x01EF;&#x01F2;&#x01F3;&#x01F5;&#x01F9;&#x01FB;&#x01FD;&#x01FF;&#x0201;&#x0203;&#x0205;&#x0207;&#x0209;&#x020B;&#x020D;&#x020F;&#x0211;&#x0213;&#x0215;&#x0217;&#x0219;&#x021B;&#x021D;&#x021F;&#x0223;&#x0225;&#x0227;&#x0229;&#x022B;&#x022D;&#x022F;&#x0231;&#x0233;&#x0253;&#x0254;&#x0256;&#x0257;&#x0259;&#x025B;&#x0260;&#x0263;&#x0268;&#x0269;&#x026F;&#x0272;&#x0275;&#x0280;&#x0283;&#x0288;&#x028A;&#x028B;&#x0292;&#x0345;&#x03AC;&#x03AD;&#x03AE;&#x03AF;&#x03B1;&#x03B2;&#x03B3;&#x03B4;&#x03B5;&#x03B6;&#x03B7;&#x03B8;&#x03B9;&#x03BA;&#x03BB;&#x03BC;&#x03BD;&#x03BE;&#x03BF;&#x03C0;&#x03C1;&#x03C2;&#x03C3;&#x03C4;&#x03C5;&#x03C6;&#x03C7;&#x03C8;&#x03C9;&#x03CA;&#x03CB;&#x03CC;&#x03CD;&#x03CE;&#x03D0;&#x03D1;&#x03D5;&#x03D6;&#x03DB;&#x03DD;&#x03DF;&#x03E1;&#x03E3;&#x03E5;&#x03E7;&#x03E9;&#x03EB;&#x03ED;&#x03EF;&#x03F0;&#x03F1;&#x03F2;&#x03F5;&#x0430;&#x0431;&#x0432;&#x0433;&#x0434;&#x0435;&#x0436;&#x0437;&#x0438;&#x0439;&#x043A;&#x043B;&#x043C;&#x043D;&#x043E;&#x043F;&#x0440;&#x0441;&#x0442;&#x0443;&#x0444;&#x0445;&#x0446;&#x0447;&#x0448;&#x0449;&#x044A;&#x044B;&#x044C;&#x044D;&#x044E;&#x044F;&#x0450;&#x0451;&#x0452;&#x0453;&#x0454;&#x0455;&#x0456;&#x0457;&#x0458;&#x0459;&#x045A;&#x045B;&#x045C;&#x045D;&#x045E;&#x045F;&#x0461;&#x0463;&#x0465;&#x0467;&#x0469;&#x046B;&#x046D;&#x046F;&#x0471;&#x0473;&#x0475;&#x0477;&#x0479;&#x047B;&#x047D;&#x047F;&#x0481;&#x048D;&#x048F;&#x0491;&#x0493;&#x0495;&#x0497;&#x0499;&#x049B;&#x049D;&#x049F;&#x04A1;&#x04A3;&#x04A5;&#x04A7;&#x04A9;&#x04AB;&#x04AD;&#x04AF;&#x04B1;&#x04B3;&#x04B5;&#x04B7;&#x04B9;&#x04BB;&#x04BD;&#x04BF;&#x04C2;&#x04C4;&#x04C8;&#x04CC;&#x04D1;&#x04D3;&#x04D5;&#x04D7;&#x04D9;&#x04DB;&#x04DD;&#x04DF;&#x04E1;&#x04E3;&#x04E5;&#x04E7;&#x04E9;&#x04EB;&#x04ED;&#x04EF;&#x04F1;&#x04F3;&#x04F5;&#x04F9;&#x0561;&#x0562;&#x0563;&#x0564;&#x0565;&#x0566;&#x0567;&#x0568;&#x0569;&#x056A;&#x056B;&#x056C;&#x056D;&#x056E;&#x056F;&#x0570;&#x0571;&#x0572;&#x0573;&#x0574;&#x0575;&#x0576;&#x0577;&#x0578;&#x0579;&#x057A;&#x057B;&#x057C;&#x057D;&#x057E;&#x057F;&#x0580;&#x0581;&#x0582;&#x0583;&#x0584;&#x0585;&#x0586;&#x1E01;&#x1E03;&#x1E05;&#x1E07;&#x1E09;&#x1E0B;&#x1E0D;&#x1E0F;&#x1E11;&#x1E13;&#x1E15;&#x1E17;&#x1E19;&#x1E1B;&#x1E1D;&#x1E1F;&#x1E21;&#x1E23;&#x1E25;&#x1E27;&#x1E29;&#x1E2B;&#x1E2D;&#x1E2F;&#x1E31;&#x1E33;&#x1E35;&#x1E37;&#x1E39;&#x1E3B;&#x1E3D;&#x1E3F;&#x1E41;&#x1E43;&#x1E45;&#x1E47;&#x1E49;&#x1E4B;&#x1E4D;&#x1E4F;&#x1E51;&#x1E53;&#x1E55;&#x1E57;&#x1E59;&#x1E5B;&#x1E5D;&#x1E5F;&#x1E61;&#x1E63;&#x1E65;&#x1E67;&#x1E69;&#x1E6B;&#x1E6D;&#x1E6F;&#x1E71;&#x1E73;&#x1E75;&#x1E77;&#x1E79;&#x1E7B;&#x1E7D;&#x1E7F;&#x1E81;&#x1E83;&#x1E85;&#x1E87;&#x1E89;&#x1E8B;&#x1E8D;&#x1E8F;&#x1E91;&#x1E93;&#x1E95;&#x1E9B;&#x1EA1;&#x1EA3;&#x1EA5;&#x1EA7;&#x1EA9;&#x1EAB;&#x1EAD;&#x1EAF;&#x1EB1;&#x1EB3;&#x1EB5;&#x1EB7;&#x1EB9;&#x1EBB;&#x1EBD;&#x1EBF;&#x1EC1;&#x1EC3;&#x1EC5;&#x1EC7;&#x1EC9;&#x1ECB;&#x1ECD;&#x1ECF;&#x1ED1;&#x1ED3;&#x1ED5;&#x1ED7;&#x1ED9;&#x1EDB;&#x1EDD;&#x1EDF;&#x1EE1;&#x1EE3;&#x1EE5;&#x1EE7;&#x1EE9;&#x1EEB;&#x1EED;&#x1EEF;&#x1EF1;&#x1EF3;&#x1EF5;&#x1EF7;&#x1EF9;&#x1F00;&#x1F01;&#x1F02;&#x1F03;&#x1F04;&#x1F05;&#x1F06;&#x1F07;&#x1F10;&#x1F11;&#x1F12;&#x1F13;&#x1F14;&#x1F15;&#x1F20;&#x1F21;&#x1F22;&#x1F23;&#x1F24;&#x1F25;&#x1F26;&#x1F27;&#x1F30;&#x1F31;&#x1F32;&#x1F33;&#x1F34;&#x1F35;&#x1F36;&#x1F37;&#x1F40;&#x1F41;&#x1F42;&#x1F43;&#x1F44;&#x1F45;&#x1F51;&#x1F53;&#x1F55;&#x1F57;&#x1F60;&#x1F61;&#x1F62;&#x1F63;&#x1F64;&#x1F65;&#x1F66;&#x1F67;&#x1F70;&#x1F71;&#x1F72;&#x1F73;&#x1F74;&#x1F75;&#x1F76;&#x1F77;&#x1F78;&#x1F79;&#x1F7A;&#x1F7B;&#x1F7C;&#x1F7D;&#x1F80;&#x1F81;&#x1F82;&#x1F83;&#x1F84;&#x1F85;&#x1F86;&#x1F87;&#x1F90;&#x1F91;&#x1F92;&#x1F93;&#x1F94;&#x1F95;&#x1F96;&#x1F97;&#x1FA0;&#x1FA1;&#x1FA2;&#x1FA3;&#x1FA4;&#x1FA5;&#x1FA6;&#x1FA7;&#x1FB0;&#x1FB1;&#x1FB3;&#x1FBE;&#x1FC3;&#x1FD0;&#x1FD1;&#x1FE0;&#x1FE1;&#x1FE5;&#x1FF3;&#x2170;&#x2171;&#x2172;&#x2173;&#x2174;&#x2175;&#x2176;&#x2177;&#x2178;&#x2179;&#x217A;&#x217B;&#x217C;&#x217D;&#x217E;&#x217F;&#x24D0;&#x24D1;&#x24D2;&#x24D3;&#x24D4;&#x24D5;&#x24D6;&#x24D7;&#x24D8;&#x24D9;&#x24DA;&#x24DB;&#x24DC;&#x24DD;&#x24DE;&#x24DF;&#x24E0;&#x24E1;&#x24E2;&#x24E3;&#x24E4;&#x24E5;&#x24E6;&#x24E7;&#x24E8;&#x24E9;&#xFF41;&#xFF42;&#xFF43;&#xFF44;&#xFF45;&#xFF46;&#xFF47;&#xFF48;&#xFF49;&#xFF4A;&#xFF4B;&#xFF4C;&#xFF4D;&#xFF4E;&#xFF4F;&#xFF50;&#xFF51;&#xFF52;&#xFF53;&#xFF54;&#xFF55;&#xFF56;&#xFF57;&#xFF58;&#xFF59;&#xFF5A;&#x10428;&#x10429;&#x1042A;&#x1042B;&#x1042C;&#x1042D;&#x1042E;&#x1042F;&#x10430;&#x10431;&#x10432;&#x10433;&#x10434;&#x10435;&#x10436;&#x10437;&#x10438;&#x10439;&#x1043A;&#x1043B;&#x1043C;&#x1043D;&#x1043E;&#x1043F;&#x10440;&#x10441;&#x10442;&#x10443;&#x10444;&#x10445;&#x10446;&#x10447;&#x10448;&#x10449;&#x1044A;&#x1044B;&#x1044C;&#x1044D;'"/>
+ <xsl:variable name="xsltsl-str-upper" select="'&#x0041;&#x0042;&#x0043;&#x0044;&#x0045;&#x0046;&#x0047;&#x0048;&#x0049;&#x004A;&#x004B;&#x004C;&#x004D;&#x004E;&#x004F;&#x0050;&#x0051;&#x0052;&#x0053;&#x0054;&#x0055;&#x0056;&#x0057;&#x0058;&#x0059;&#x005A;&#x039C;&#x00C0;&#x00C1;&#x00C2;&#x00C3;&#x00C4;&#x00C5;&#x00C6;&#x00C7;&#x00C8;&#x00C9;&#x00CA;&#x00CB;&#x00CC;&#x00CD;&#x00CE;&#x00CF;&#x00D0;&#x00D1;&#x00D2;&#x00D3;&#x00D4;&#x00D5;&#x00D6;&#x00D8;&#x00D9;&#x00DA;&#x00DB;&#x00DC;&#x00DD;&#x00DE;&#x0178;&#x0100;&#x0102;&#x0104;&#x0106;&#x0108;&#x010A;&#x010C;&#x010E;&#x0110;&#x0112;&#x0114;&#x0116;&#x0118;&#x011A;&#x011C;&#x011E;&#x0120;&#x0122;&#x0124;&#x0126;&#x0128;&#x012A;&#x012C;&#x012E;&#x0049;&#x0132;&#x0134;&#x0136;&#x0139;&#x013B;&#x013D;&#x013F;&#x0141;&#x0143;&#x0145;&#x0147;&#x014A;&#x014C;&#x014E;&#x0150;&#x0152;&#x0154;&#x0156;&#x0158;&#x015A;&#x015C;&#x015E;&#x0160;&#x0162;&#x0164;&#x0166;&#x0168;&#x016A;&#x016C;&#x016E;&#x0170;&#x0172;&#x0174;&#x0176;&#x0179;&#x017B;&#x017D;&#x0053;&#x0182;&#x0184;&#x0187;&#x018B;&#x0191;&#x01F6;&#x0198;&#x01A0;&#x01A2;&#x01A4;&#x01A7;&#x01AC;&#x01AF;&#x01B3;&#x01B5;&#x01B8;&#x01BC;&#x01F7;&#x01C4;&#x01C4;&#x01C7;&#x01C7;&#x01CA;&#x01CA;&#x01CD;&#x01CF;&#x01D1;&#x01D3;&#x01D5;&#x01D7;&#x01D9;&#x01DB;&#x018E;&#x01DE;&#x01E0;&#x01E2;&#x01E4;&#x01E6;&#x01E8;&#x01EA;&#x01EC;&#x01EE;&#x01F1;&#x01F1;&#x01F4;&#x01F8;&#x01FA;&#x01FC;&#x01FE;&#x0200;&#x0202;&#x0204;&#x0206;&#x0208;&#x020A;&#x020C;&#x020E;&#x0210;&#x0212;&#x0214;&#x0216;&#x0218;&#x021A;&#x021C;&#x021E;&#x0222;&#x0224;&#x0226;&#x0228;&#x022A;&#x022C;&#x022E;&#x0230;&#x0232;&#x0181;&#x0186;&#x0189;&#x018A;&#x018F;&#x0190;&#x0193;&#x0194;&#x0197;&#x0196;&#x019C;&#x019D;&#x019F;&#x01A6;&#x01A9;&#x01AE;&#x01B1;&#x01B2;&#x01B7;&#x0399;&#x0386;&#x0388;&#x0389;&#x038A;&#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;&#x0397;&#x0398;&#x0399;&#x039A;&#x039B;&#x039C;&#x039D;&#x039E;&#x039F;&#x03A0;&#x03A1;&#x03A3;&#x03A3;&#x03A4;&#x03A5;&#x03A6;&#x03A7;&#x03A8;&#x03A9;&#x03AA;&#x03AB;&#x038C;&#x038E;&#x038F;&#x0392;&#x0398;&#x03A6;&#x03A0;&#x03DA;&#x03DC;&#x03DE;&#x03E0;&#x03E2;&#x03E4;&#x03E6;&#x03E8;&#x03EA;&#x03EC;&#x03EE;&#x039A;&#x03A1;&#x03A3;&#x0395;&#x0410;&#x0411;&#x0412;&#x0413;&#x0414;&#x0415;&#x0416;&#x0417;&#x0418;&#x0419;&#x041A;&#x041B;&#x041C;&#x041D;&#x041E;&#x041F;&#x0420;&#x0421;&#x0422;&#x0423;&#x0424;&#x0425;&#x0426;&#x0427;&#x0428;&#x0429;&#x042A;&#x042B;&#x042C;&#x042D;&#x042E;&#x042F;&#x0400;&#x0401;&#x0402;&#x0403;&#x0404;&#x0405;&#x0406;&#x0407;&#x0408;&#x0409;&#x040A;&#x040B;&#x040C;&#x040D;&#x040E;&#x040F;&#x0460;&#x0462;&#x0464;&#x0466;&#x0468;&#x046A;&#x046C;&#x046E;&#x0470;&#x0472;&#x0474;&#x0476;&#x0478;&#x047A;&#x047C;&#x047E;&#x0480;&#x048C;&#x048E;&#x0490;&#x0492;&#x0494;&#x0496;&#x0498;&#x049A;&#x049C;&#x049E;&#x04A0;&#x04A2;&#x04A4;&#x04A6;&#x04A8;&#x04AA;&#x04AC;&#x04AE;&#x04B0;&#x04B2;&#x04B4;&#x04B6;&#x04B8;&#x04BA;&#x04BC;&#x04BE;&#x04C1;&#x04C3;&#x04C7;&#x04CB;&#x04D0;&#x04D2;&#x04D4;&#x04D6;&#x04D8;&#x04DA;&#x04DC;&#x04DE;&#x04E0;&#x04E2;&#x04E4;&#x04E6;&#x04E8;&#x04EA;&#x04EC;&#x04EE;&#x04F0;&#x04F2;&#x04F4;&#x04F8;&#x0531;&#x0532;&#x0533;&#x0534;&#x0535;&#x0536;&#x0537;&#x0538;&#x0539;&#x053A;&#x053B;&#x053C;&#x053D;&#x053E;&#x053F;&#x0540;&#x0541;&#x0542;&#x0543;&#x0544;&#x0545;&#x0546;&#x0547;&#x0548;&#x0549;&#x054A;&#x054B;&#x054C;&#x054D;&#x054E;&#x054F;&#x0550;&#x0551;&#x0552;&#x0553;&#x0554;&#x0555;&#x0556;&#x1E00;&#x1E02;&#x1E04;&#x1E06;&#x1E08;&#x1E0A;&#x1E0C;&#x1E0E;&#x1E10;&#x1E12;&#x1E14;&#x1E16;&#x1E18;&#x1E1A;&#x1E1C;&#x1E1E;&#x1E20;&#x1E22;&#x1E24;&#x1E26;&#x1E28;&#x1E2A;&#x1E2C;&#x1E2E;&#x1E30;&#x1E32;&#x1E34;&#x1E36;&#x1E38;&#x1E3A;&#x1E3C;&#x1E3E;&#x1E40;&#x1E42;&#x1E44;&#x1E46;&#x1E48;&#x1E4A;&#x1E4C;&#x1E4E;&#x1E50;&#x1E52;&#x1E54;&#x1E56;&#x1E58;&#x1E5A;&#x1E5C;&#x1E5E;&#x1E60;&#x1E62;&#x1E64;&#x1E66;&#x1E68;&#x1E6A;&#x1E6C;&#x1E6E;&#x1E70;&#x1E72;&#x1E74;&#x1E76;&#x1E78;&#x1E7A;&#x1E7C;&#x1E7E;&#x1E80;&#x1E82;&#x1E84;&#x1E86;&#x1E88;&#x1E8A;&#x1E8C;&#x1E8E;&#x1E90;&#x1E92;&#x1E94;&#x1E60;&#x1EA0;&#x1EA2;&#x1EA4;&#x1EA6;&#x1EA8;&#x1EAA;&#x1EAC;&#x1EAE;&#x1EB0;&#x1EB2;&#x1EB4;&#x1EB6;&#x1EB8;&#x1EBA;&#x1EBC;&#x1EBE;&#x1EC0;&#x1EC2;&#x1EC4;&#x1EC6;&#x1EC8;&#x1ECA;&#x1ECC;&#x1ECE;&#x1ED0;&#x1ED2;&#x1ED4;&#x1ED6;&#x1ED8;&#x1EDA;&#x1EDC;&#x1EDE;&#x1EE0;&#x1EE2;&#x1EE4;&#x1EE6;&#x1EE8;&#x1EEA;&#x1EEC;&#x1EEE;&#x1EF0;&#x1EF2;&#x1EF4;&#x1EF6;&#x1EF8;&#x1F08;&#x1F09;&#x1F0A;&#x1F0B;&#x1F0C;&#x1F0D;&#x1F0E;&#x1F0F;&#x1F18;&#x1F19;&#x1F1A;&#x1F1B;&#x1F1C;&#x1F1D;&#x1F28;&#x1F29;&#x1F2A;&#x1F2B;&#x1F2C;&#x1F2D;&#x1F2E;&#x1F2F;&#x1F38;&#x1F39;&#x1F3A;&#x1F3B;&#x1F3C;&#x1F3D;&#x1F3E;&#x1F3F;&#x1F48;&#x1F49;&#x1F4A;&#x1F4B;&#x1F4C;&#x1F4D;&#x1F59;&#x1F5B;&#x1F5D;&#x1F5F;&#x1F68;&#x1F69;&#x1F6A;&#x1F6B;&#x1F6C;&#x1F6D;&#x1F6E;&#x1F6F;&#x1FBA;&#x1FBB;&#x1FC8;&#x1FC9;&#x1FCA;&#x1FCB;&#x1FDA;&#x1FDB;&#x1FF8;&#x1FF9;&#x1FEA;&#x1FEB;&#x1FFA;&#x1FFB;&#x1F88;&#x1F89;&#x1F8A;&#x1F8B;&#x1F8C;&#x1F8D;&#x1F8E;&#x1F8F;&#x1F98;&#x1F99;&#x1F9A;&#x1F9B;&#x1F9C;&#x1F9D;&#x1F9E;&#x1F9F;&#x1FA8;&#x1FA9;&#x1FAA;&#x1FAB;&#x1FAC;&#x1FAD;&#x1FAE;&#x1FAF;&#x1FB8;&#x1FB9;&#x1FBC;&#x0399;&#x1FCC;&#x1FD8;&#x1FD9;&#x1FE8;&#x1FE9;&#x1FEC;&#x1FFC;&#x2160;&#x2161;&#x2162;&#x2163;&#x2164;&#x2165;&#x2166;&#x2167;&#x2168;&#x2169;&#x216A;&#x216B;&#x216C;&#x216D;&#x216E;&#x216F;&#x24B6;&#x24B7;&#x24B8;&#x24B9;&#x24BA;&#x24BB;&#x24BC;&#x24BD;&#x24BE;&#x24BF;&#x24C0;&#x24C1;&#x24C2;&#x24C3;&#x24C4;&#x24C5;&#x24C6;&#x24C7;&#x24C8;&#x24C9;&#x24CA;&#x24CB;&#x24CC;&#x24CD;&#x24CE;&#x24CF;&#xFF21;&#xFF22;&#xFF23;&#xFF24;&#xFF25;&#xFF26;&#xFF27;&#xFF28;&#xFF29;&#xFF2A;&#xFF2B;&#xFF2C;&#xFF2D;&#xFF2E;&#xFF2F;&#xFF30;&#xFF31;&#xFF32;&#xFF33;&#xFF34;&#xFF35;&#xFF36;&#xFF37;&#xFF38;&#xFF39;&#xFF3A;&#x10400;&#x10401;&#x10402;&#x10403;&#x10404;&#x10405;&#x10406;&#x10407;&#x10408;&#x10409;&#x1040A;&#x1040B;&#x1040C;&#x1040D;&#x1040E;&#x1040F;&#x10410;&#x10411;&#x10412;&#x10413;&#x10414;&#x10415;&#x10416;&#x10417;&#x10418;&#x10419;&#x1041A;&#x1041B;&#x1041C;&#x1041D;&#x1041E;&#x1041F;&#x10420;&#x10421;&#x10422;&#x10423;&#x10424;&#x10425;'"/>
+ <xsl:variable name="xsltsl-str-digits" select="'0123456789'"/>
+ <!-- space (#x20) characters, carriage returns, line feeds, or tabs. -->
+ <xsl:variable name="xsltsl-str-ws" select="'&#x20;&#x9;&#xD;&#xA;'"/>
+
+ <doc:template name="str:to-upper" xmlns="">
+ <refpurpose>Make string uppercase</refpurpose>
+
+ <refdescription>
+ <para>Converts all lowercase letters to uppercase.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>text</term>
+ <listitem>
+ <para>The string to be converted</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns string with all uppercase letters.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="str:to-upper">
+ <xsl:param name="text"/>
+
+ <!-- Below exception is extracted from unicode's SpecialCasing.txt
+ file. It's the german lowercase "eszett" (the thing looking
+ like a greek beta) that's to become "SS" in uppercase (note:
+ that are *two* characters, that's why it doesn't fit in the
+ list of upper/lowercase characters). There are more
+ characters in that file (103, excluding the locale-specific
+ ones), but they seemed to be much less used to me and they
+ add up to a hellish long stylesheet.... - Reinout -->
+ <xsl:param name="modified-text">
+ <xsl:call-template name="str:subst">
+ <xsl:with-param name="text">
+ <xsl:value-of select="$text"/>
+ </xsl:with-param>
+ <xsl:with-param name="replace">
+ <xsl:text>&#x00DF;</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="with">
+ <xsl:text>&#x0053;</xsl:text>
+ <xsl:text>&#x0053;</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:param>
+
+ <xsl:value-of select="translate($modified-text, $xsltsl-str-lower, $xsltsl-str-upper)"/>
+ </xsl:template>
+
+ <doc:template name="str:to-lower" xmlns="">
+ <refpurpose>Make string lowercase</refpurpose>
+
+ <refdescription>
+ <para>Converts all uppercase letters to lowercase.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>text</term>
+ <listitem>
+ <para>The string to be converted</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns string with all lowercase letters.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="str:to-lower">
+ <xsl:param name="text"/>
+
+ <xsl:value-of select="translate($text, $xsltsl-str-upper, $xsltsl-str-lower)"/>
+ </xsl:template>
+
+ <doc:template name="str:capitalise" xmlns="">
+ <refpurpose>Capitalise string</refpurpose>
+
+ <refdescription>
+ <para>Converts first character of string to an uppercase letter. All remaining characters are converted to lowercase.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>text</term>
+ <listitem>
+ <para>The string to be capitalised</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>all</term>
+ <listitem>
+ <para>Boolean controlling whether all words in the string are capitalised.</para>
+ <para>Default is true.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns string with first character uppcase and all remaining characters lowercase.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="str:capitalise">
+ <xsl:param name="text"/>
+ <xsl:param name="all" select="true()"/>
+
+ <xsl:choose>
+ <xsl:when test="$all and (contains($text, ' ') or contains($text, ' ') or contains($text, '&#10;'))">
+ <xsl:variable name="firstword">
+ <xsl:call-template name="str:substring-before-first">
+ <xsl:with-param name="text" select="$text"/>
+ <xsl:with-param name="chars" select="$xsltsl-str-ws"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="str:capitalise">
+ <xsl:with-param name="text">
+ <xsl:value-of select="$firstword"/>
+ </xsl:with-param>
+ <xsl:with-param name="all" select="false()"/>
+ </xsl:call-template>
+ <xsl:value-of select="substring($text, string-length($firstword) + 1, 1)"/>
+ <xsl:call-template name="str:capitalise">
+ <xsl:with-param name="text">
+ <xsl:value-of select="substring($text, string-length($firstword) + 2)"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:call-template name="str:to-upper">
+ <xsl:with-param name="text" select="substring($text, 1, 1)"/>
+ </xsl:call-template>
+ <xsl:call-template name="str:to-lower">
+ <xsl:with-param name="text" select="substring($text, 2)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="str:to-camelcase" xmlns="">
+ <refpurpose>Convert a string to one camelcase word</refpurpose>
+
+ <refdescription>
+ <para>Converts a string to one lowerCamelCase or UpperCamelCase
+ word, depending on the setting of the "upper"
+ parameter. UpperCamelCase is also called MixedCase while
+ lowerCamelCase is also called just camelCase. The template
+ removes any spaces, tabs and slashes, but doesn't deal with
+ other punctuation. It's purpose is to convert strings like
+ "hollow timber flush door" to a term suitable as identifier or
+ XML tag like "HollowTimberFlushDoor".
+ </para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>text</term>
+ <listitem>
+ <para>The string to be capitalised</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>upper</term>
+ <listitem>
+ <para>Boolean controlling whether the string becomes an
+ UpperCamelCase word or a lowerCamelCase word.</para>
+ <para>Default is true.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns string with first character uppcase and all remaining characters lowercase.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="str:to-camelcase">
+ <xsl:param name="text"/>
+ <xsl:param name="upper" select="true()"/>
+ <!-- First change all 'strange' characters to spaces -->
+ <xsl:param name="string-with-only-spaces">
+ <xsl:value-of select="translate($text,concat($xsltsl-str-ws,'/'),' ')"/>
+ </xsl:param>
+ <!-- Then process them -->
+ <xsl:param name="before-space-removal">
+ <xsl:variable name="firstword">
+ <xsl:call-template name="str:substring-before-first">
+ <xsl:with-param name="text" select="$string-with-only-spaces"/>
+ <xsl:with-param name="chars" select="$xsltsl-str-ws"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$upper">
+ <xsl:call-template name="str:to-upper">
+ <xsl:with-param name="text" select="substring($firstword, 1, 1)"/>
+ </xsl:call-template>
+ <xsl:call-template name="str:to-lower">
+ <xsl:with-param name="text" select="substring($firstword, 2)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="str:to-lower">
+ <xsl:with-param name="text" select="$firstword"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:call-template name="str:capitalise">
+ <xsl:with-param name="text">
+ <xsl:value-of select="substring($string-with-only-spaces, string-length($firstword) + 2)"/>
+ </xsl:with-param>
+ <xsl:with-param name="all" select="true()"/>
+ </xsl:call-template>
+ </xsl:param>
+ <xsl:value-of select="translate($before-space-removal,' ','')"/>
+ </xsl:template>
+
+ <doc:template name="str:substring-before-first" xmlns="">
+ <refpurpose>String extraction</refpurpose>
+
+ <refdescription>
+ <para>Extracts the portion of string 'text' which occurs before any of the characters in string 'chars'.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>text</term>
+ <listitem>
+ <para>The string from which to extract a substring.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>chars</term>
+ <listitem>
+ <para>The string containing characters to find.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="str:substring-before-first">
+ <xsl:param name="text"/>
+ <xsl:param name="chars"/>
+
+ <xsl:choose>
+
+ <xsl:when test="string-length($text) = 0"/>
+
+ <xsl:when test="string-length($chars) = 0">
+ <xsl:value-of select="$text"/>
+ </xsl:when>
+
+ <xsl:when test="contains($text, substring($chars, 1, 1))">
+ <xsl:variable name="this" select="substring-before($text, substring($chars, 1, 1))"/>
+ <xsl:variable name="rest">
+ <xsl:call-template name="str:substring-before-first">
+ <xsl:with-param name="text" select="$text"/>
+ <xsl:with-param name="chars" select="substring($chars, 2)"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="string-length($this) &lt; string-length($rest)">
+ <xsl:value-of select="$this"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$rest"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:call-template name="str:substring-before-first">
+ <xsl:with-param name="text" select="$text"/>
+ <xsl:with-param name="chars" select="substring($chars, 2)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="str:substring-after-last" xmlns="">
+ <refpurpose>String extraction</refpurpose>
+
+ <refdescription>
+ <para>Extracts the portion of string 'text' which occurs after the last of the character in string 'chars'.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>text</term>
+ <listitem>
+ <para>The string from which to extract a substring.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>chars</term>
+ <listitem>
+ <para>The string containing characters to find.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="str:substring-after-last">
+ <xsl:param name="text"/>
+ <xsl:param name="chars"/>
+
+ <xsl:choose>
+
+ <xsl:when test="contains($text, $chars)">
+ <xsl:variable name="last" select="substring-after($text, $chars)"/>
+
+ <xsl:choose>
+ <xsl:when test="contains($last, $chars)">
+ <xsl:call-template name="str:substring-after-last">
+ <xsl:with-param name="text" select="$last"/>
+ <xsl:with-param name="chars" select="$chars"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$last"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:value-of select="$text"/>
+ </xsl:otherwise>
+
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="str:substring-before-last" xmlns="">
+ <refpurpose>String extraction</refpurpose>
+
+ <refdescription>
+ <para>Extracts the portion of string 'text' which occurs before the first character of the last occurance of string 'chars'.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>text</term>
+ <listitem>
+ <para>The string from which to extract a substring.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>chars</term>
+ <listitem>
+ <para>The string containing characters to find.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="str:substring-before-last">
+ <xsl:param name="text"/>
+ <xsl:param name="chars"/>
+
+ <xsl:choose>
+
+ <xsl:when test="string-length($text) = 0"/>
+
+ <xsl:when test="string-length($chars) = 0">
+ <xsl:value-of select="$text"/>
+ </xsl:when>
+
+ <xsl:when test="contains($text, $chars)">
+ <xsl:call-template name="str:substring-before-last-aux">
+ <xsl:with-param name="text" select="$text"/>
+ <xsl:with-param name="chars" select="$chars"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:value-of select="$text"/>
+ </xsl:otherwise>
+
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="str:substring-before-last-aux">
+ <xsl:param name="text"/>
+ <xsl:param name="chars"/>
+
+ <xsl:choose>
+ <xsl:when test="string-length($text) = 0"/>
+
+ <xsl:when test="contains($text, $chars)">
+ <xsl:variable name="after">
+ <xsl:call-template name="str:substring-before-last-aux">
+ <xsl:with-param name="text" select="substring-after($text, $chars)"/>
+ <xsl:with-param name="chars" select="$chars"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:value-of select="substring-before($text, $chars)"/>
+ <xsl:if test="string-length($after) &gt; 0">
+ <xsl:value-of select="$chars"/>
+ <xsl:copy-of select="$after"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="str:subst" xmlns="">
+ <refpurpose>String substitution</refpurpose>
+
+ <refdescription>
+ <para>Substitute 'replace' for 'with' in string 'text'.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>text</term>
+ <listitem>
+ <para>The string upon which to perform substitution.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>replace</term>
+ <listitem>
+ <para>The string to substitute.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>with</term>
+ <listitem>
+ <para>The string to be substituted.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>disable-output-escaping</term>
+ <listitem>
+ <para>A value of <literal>yes</literal> indicates that the result should have output escaping disabled. Any other value allows normal escaping of text values. The default is to enable output escaping.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="str:subst">
+ <xsl:param name="text"/>
+ <xsl:param name="replace"/>
+ <xsl:param name="with"/>
+ <xsl:param name='disable-output-escaping'>no</xsl:param>
+
+ <xsl:choose>
+ <xsl:when test="string-length($replace) = 0 and $disable-output-escaping = 'yes'">
+ <xsl:value-of select="$text" disable-output-escaping='yes'/>
+ </xsl:when>
+ <xsl:when test="string-length($replace) = 0">
+ <xsl:value-of select="$text"/>
+ </xsl:when>
+ <xsl:when test="contains($text, $replace)">
+
+ <xsl:variable name="before" select="substring-before($text, $replace)"/>
+ <xsl:variable name="after" select="substring-after($text, $replace)"/>
+
+ <xsl:choose>
+ <xsl:when test='$disable-output-escaping = "yes"'>
+ <xsl:value-of select="$before" disable-output-escaping="yes"/>
+ <xsl:value-of select="$with" disable-output-escaping="yes"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$before"/>
+ <xsl:value-of select="$with"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:call-template name="str:subst">
+ <xsl:with-param name="text" select="$after"/>
+ <xsl:with-param name="replace" select="$replace"/>
+ <xsl:with-param name="with" select="$with"/>
+ <xsl:with-param name="disable-output-escaping" select="$disable-output-escaping"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test='$disable-output-escaping = "yes"'>
+ <xsl:value-of select="$text" disable-output-escaping="yes"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$text"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="str:count-substring" xmlns="">
+ <refpurpose>Count Substrings</refpurpose>
+
+ <refdescription>
+ <para>Counts the number of times a substring occurs in a string. This can also counts the number of times a character occurs in a string, since a character is simply a string of length 1.</para>
+ </refdescription>
+
+ <example>
+ <title>Counting Lines</title>
+ <programlisting><![CDATA[
+<xsl:call-template name="str:count-substring">
+ <xsl:with-param name="text" select="$mytext"/>
+ <xsl:with-param name="chars" select="'&#x0a;'"/>
+</xsl:call-template>
+]]></programlisting>
+ </example>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>text</term>
+ <listitem>
+ <para>The source string.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>chars</term>
+ <listitem>
+ <para>The substring to count.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns a non-negative integer value.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="str:count-substring">
+ <xsl:param name="text"/>
+ <xsl:param name="chars"/>
+
+ <xsl:choose>
+ <xsl:when test="string-length($text) = 0 or string-length($chars) = 0">
+ <xsl:text>0</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($text, $chars)">
+ <xsl:variable name="remaining">
+ <xsl:call-template name="str:count-substring">
+ <xsl:with-param name="text" select="substring-after($text, $chars)"/>
+ <xsl:with-param name="chars" select="$chars"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$remaining + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>0</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="str:substring-after-at" xmlns="">
+ <refpurpose>String extraction</refpurpose>
+ <refdescription>
+ <para>Extracts the portion of a 'char' delimited 'text' string "array" at a given 'position'.</para>
+ </refdescription>
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>text</term>
+ <listitem>
+ <para>The string from which to extract a substring.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>chars</term>
+ <listitem>
+ <para>delimiters</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>position</term>
+ <listitem>
+ <para>position of the elements</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>all</term>
+ <listitem>
+ <para>If true all of the remaining string is returned, otherwise only the element at the given position is returned. Default: false().</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refreturn>
+ <para>Returns string.</para>
+ </refreturn>
+ </doc:template>
+
+
+ <xsl:template name="str:substring-after-at">
+ <xsl:param name="text"/>
+ <xsl:param name="chars"/>
+ <xsl:param name="position"/>
+ <xsl:param name="all" select='false()'/>
+
+ <xsl:choose>
+ <xsl:when test='number($position) = 0 and $all'>
+ <xsl:value-of select='$text'/>
+ </xsl:when>
+ <xsl:when test='number($position) = 0 and not($chars)'>
+ <xsl:value-of select='$text'/>
+ </xsl:when>
+ <xsl:when test='number($position) = 0 and not(contains($text, $chars))'>
+ <xsl:value-of select='$text'/>
+ </xsl:when>
+ <xsl:when test='not(contains($text, $chars))'>
+ </xsl:when>
+ <xsl:when test="number($position) = 0">
+ <xsl:value-of select="substring-before($text, $chars)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="str:substring-after-at">
+ <xsl:with-param name="text" select="substring-after($text, $chars)"/>
+ <xsl:with-param name="chars" select="$chars"/>
+ <xsl:with-param name="all" select="$all"/>
+ <xsl:with-param name="position" select="$position - 1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="str:substring-before-at" xmlns="">
+ <refpurpose>String extraction</refpurpose>
+ <refdescription>
+ <para>Extracts the portion of a 'char' delimited 'text' string "array" at a given 'position' </para>
+ </refdescription>
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>text</term>
+ <listitem>
+ <para>The string from which to extract a substring.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>chars</term>
+ <listitem>
+ <para>delimiters</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>position</term>
+ <listitem>
+ <para>position of the elements</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refreturn>
+ <para>Returns string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="str:substring-before-at">
+ <xsl:param name="text"/>
+ <xsl:param name="chars"/>
+ <xsl:param name="position"/>
+
+ <xsl:choose>
+ <xsl:when test="$position &lt;= 0"/>
+ <xsl:when test="not(contains($text, $chars))"/>
+ <xsl:otherwise>
+ <xsl:value-of select='substring-before($text, $chars)'/>
+ <xsl:value-of select='$chars'/>
+
+ <xsl:call-template name="str:substring-before-at">
+ <xsl:with-param name="text" select="substring-after($text, $chars)"/>
+ <xsl:with-param name="position" select="$position - 1"/>
+ <xsl:with-param name="chars" select="$chars"/>
+ </xsl:call-template>
+
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="str:insert-at" xmlns="">
+ <refpurpose>String insertion</refpurpose>
+ <refdescription>
+ <para>Insert 'chars' into "text' at any given "position'</para>
+ </refdescription>
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>text</term>
+ <listitem>
+ <para>The string upon which to perform insertion</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>position</term>
+ <listitem>
+ <para>the position where insertion will be performed</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>with</term>
+ <listitem>
+ <para>The string to be inserted</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refreturn>
+ <para>Returns string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="str:insert-at">
+ <xsl:param name="text"/>
+ <xsl:param name="position"/>
+ <xsl:param name="chars"/>
+
+ <xsl:variable name="firstpart" select="substring($text, 0, $position)"/>
+ <xsl:variable name="secondpart" select="substring($text, $position, string-length($text))"/>
+
+ <xsl:value-of select="concat($firstpart, $chars, $secondpart)"/>
+ </xsl:template>
+
+
+ <doc:template name="str:backward" xmlns="">
+ <refpurpose>String reversal</refpurpose>
+
+ <refdescription>
+ <para>Reverse the content of a given string</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>text</term>
+ <listitem>
+ <para>The string to be reversed</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns string.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="str:backward">
+ <xsl:param name="text"/>
+ <xsl:variable name="mirror">
+ <xsl:call-template name="str:build-mirror">
+ <xsl:with-param name="text" select="$text"/>
+ <xsl:with-param name="position" select="string-length($text)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="substring($mirror, string-length($text) + 1, string-length($text))"/>
+ </xsl:template>
+
+ <xsl:template name="str:build-mirror">
+ <xsl:param name="text"/>
+ <xsl:param name="position"/>
+
+ <xsl:choose>
+ <xsl:when test="$position &gt; 0">
+ <xsl:call-template name="str:build-mirror">
+ <xsl:with-param name="text" select="concat($text, substring($text, $position, 1))"/>
+ <xsl:with-param name="position" select="$position - 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$text"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="str:justify" xmlns="">
+ <refpurpose>Format a string</refpurpose>
+
+ <refdescription>
+ <para>Inserts newlines and spaces into a string to format it as a block of text.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>text</term>
+ <listitem>
+ <para>String to be formatted.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>max</term>
+ <listitem>
+ <para>Maximum line length.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>indent</term>
+ <listitem>
+ <para>Number of spaces to insert at the beginning of each line.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>justify</term>
+ <listitem>
+ <para>Justify left, right or both. Not currently implemented (fixed at "left").</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Formatted block of text.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='str:justify'>
+ <xsl:param name='text'/>
+ <xsl:param name='max' select='"80"'/>
+ <xsl:param name='indent' select='"0"'/>
+ <xsl:param name='justify' select='"left"'/>
+
+ <xsl:choose>
+ <xsl:when test='string-length($text) = 0 or $max &lt;= 0'/>
+
+ <xsl:when test='string-length($text) > $max and contains($text, " ") and string-length(substring-before($text, " ")) > $max'>
+ <xsl:call-template name='str:generate-string'>
+ <xsl:with-param name='text' select='" "'/>
+ <xsl:with-param name='count' select='$indent'/>
+ </xsl:call-template>
+ <xsl:value-of select='substring-before($text, " ")'/>
+ <xsl:text>
+</xsl:text>
+ <xsl:call-template name='str:justify'>
+ <xsl:with-param name='text' select='substring-after($text, " ")'/>
+ <xsl:with-param name='max' select='$max'/>
+ <xsl:with-param name='indent' select='$indent'/>
+ <xsl:with-param name='justify' select='$justify'/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test='string-length($text) > $max and contains($text, " ")'>
+ <xsl:variable name='first'>
+ <xsl:call-template name='str:substring-before-last'>
+ <xsl:with-param name='text' select='substring($text, 1, $max)'/>
+ <xsl:with-param name='chars' select='" "'/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:call-template name='str:generate-string'>
+ <xsl:with-param name='text' select='" "'/>
+ <xsl:with-param name='count' select='$indent'/>
+ </xsl:call-template>
+ <xsl:value-of select='$first'/>
+ <xsl:text>
+</xsl:text>
+ <xsl:call-template name='str:justify'>
+ <xsl:with-param name='text' select='substring($text, string-length($first) + 2)'/>
+ <xsl:with-param name='max' select='$max'/>
+ <xsl:with-param name='indent' select='$indent'/>
+ <xsl:with-param name='justify' select='$justify'/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:call-template name='str:generate-string'>
+ <xsl:with-param name='text' select='" "'/>
+ <xsl:with-param name='count' select='$indent'/>
+ </xsl:call-template>
+ <xsl:value-of select='$text'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="str:character-first" xmlns="">
+ <refpurpose>Find first occurring character in a string</refpurpose>
+
+ <refdescription>
+ <para>Finds which of the given characters occurs first in a string.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>text</term>
+ <listitem>
+ <para>The source string.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>chars</term>
+ <listitem>
+ <para>The characters to search for.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ </doc:template>
+
+ <xsl:template name="str:character-first">
+ <xsl:param name="text"/>
+ <xsl:param name="chars"/>
+
+ <xsl:choose>
+ <xsl:when test="string-length($text) = 0 or string-length($chars) = 0"/>
+
+ <xsl:when test="contains($text, substring($chars, 1, 1))">
+ <xsl:variable name="next-character">
+ <xsl:call-template name="str:character-first">
+ <xsl:with-param name="text" select="$text"/>
+ <xsl:with-param name="chars" select="substring($chars, 2)"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="string-length($next-character)">
+ <xsl:variable name="first-character-position" select="string-length(substring-before($text, substring($chars, 1, 1)))"/>
+ <xsl:variable name="next-character-position" select="string-length(substring-before($text, $next-character))"/>
+
+ <xsl:choose>
+ <xsl:when test="$first-character-position &lt; $next-character-position">
+ <xsl:value-of select="substring($chars, 1, 1)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$next-character"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring($chars, 1, 1)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="str:character-first">
+ <xsl:with-param name="text" select="$text"/>
+ <xsl:with-param name="chars" select="substring($chars, 2)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="str:string-match" xmlns="">
+ <refpurpose>Match A String To A Pattern</refpurpose>
+
+ <refdescription>
+ <para>Performs globbing-style pattern matching on a string.</para>
+ </refdescription>
+
+ <example>
+ <title>Match Pattern</title>
+ <programlisting><![CDATA[
+<xsl:call-template name="str:string-match">
+ <xsl:with-param name="text" select="$mytext"/>
+ <xsl:with-param name="pattern" select="'abc*def?g'"/>
+</xsl:call-template>
+]]></programlisting>
+ </example>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>text</term>
+ <listitem>
+ <para>The source string.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pattern</term>
+ <listitem>
+ <para>The pattern to match against. Certain characters have special meaning:</para>
+ <variablelist>
+ <varlistentry>
+ <term>*</term>
+ <listitem>
+ <para>Matches zero or more characters.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>?</term>
+ <listitem>
+ <para>Matches a single character.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>\</term>
+ <listitem>
+ <para>Character escape. The next character is taken as a literal character.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns "1" if the string matches the pattern, "0" otherwise.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="str:string-match">
+ <xsl:param name="text"/>
+ <xsl:param name="pattern"/>
+
+ <xsl:choose>
+ <xsl:when test="$pattern = '*'">
+ <!-- Special case: always matches -->
+ <xsl:text>1</xsl:text>
+ </xsl:when>
+ <xsl:when test="string-length($text) = 0 and string-length($pattern) = 0">
+ <xsl:text>1</xsl:text>
+ </xsl:when>
+ <xsl:when test="string-length($text) = 0 or string-length($pattern) = 0">
+ <xsl:text>0</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name='before-special'>
+ <xsl:call-template name='str:substring-before-first'>
+ <xsl:with-param name='text' select='$pattern'/>
+ <xsl:with-param name='chars' select='"*?\"'/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name='special'>
+ <xsl:call-template name='str:character-first'>
+ <xsl:with-param name='text' select='$pattern'/>
+ <xsl:with-param name='chars' select='"*?\"'/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name='new-text' select='substring($text, string-length($before-special) + 1)'/>
+ <xsl:variable name='new-pattern' select='substring($pattern, string-length($before-special) + 1)'/>
+
+ <xsl:choose>
+ <xsl:when test="not(starts-with($text, $before-special))">
+ <!-- Verbatim characters don't match -->
+ <xsl:text>0</xsl:text>
+ </xsl:when>
+
+ <xsl:when test="$special = '*' and string-length($new-pattern) = 1">
+ <xsl:text>1</xsl:text>
+ </xsl:when>
+ <xsl:when test="$special = '*'">
+ <xsl:call-template name='str:match-postfix'>
+ <xsl:with-param name='text' select='$new-text'/>
+ <xsl:with-param name='pattern' select='substring($new-pattern, 2)'/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$special = '?'">
+ <xsl:call-template name="str:string-match">
+ <xsl:with-param name='text' select='substring($new-text, 2)'/>
+ <xsl:with-param name='pattern' select='substring($new-pattern, 2)'/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$special = '\' and substring($new-text, 1, 1) = substring($new-pattern, 2, 1)">
+ <xsl:call-template name="str:string-match">
+ <xsl:with-param name='text' select='substring($new-text, 2)'/>
+ <xsl:with-param name='pattern' select='substring($new-pattern, 3)'/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$special = '\' and substring($new-text, 1, 1) != substring($new-pattern, 2, 1)">
+ <xsl:text>0</xsl:text>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <!-- There were no special characters in the pattern -->
+ <xsl:choose>
+ <xsl:when test='$text = $pattern'>
+ <xsl:text>1</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>0</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="str:match-postfix">
+ <xsl:param name="text"/>
+ <xsl:param name="pattern"/>
+
+ <xsl:variable name='result'>
+ <xsl:call-template name='str:string-match'>
+ <xsl:with-param name='text' select='$text'/>
+ <xsl:with-param name='pattern' select='$pattern'/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test='$result = "1"'>
+ <xsl:value-of select='$result'/>
+ </xsl:when>
+ <xsl:when test='string-length($text) = 0'>
+ <xsl:text>0</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name='str:match-postfix'>
+ <xsl:with-param name='text' select='substring($text, 2)'/>
+ <xsl:with-param name='pattern' select='$pattern'/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:template>
+
+ <doc:template name="str:generate-string" xmlns="">
+ <refpurpose>Create A Repeating Sequence of Characters</refpurpose>
+
+ <refdescription>
+ <para>Repeats a string a given number of times.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>text</term>
+ <listitem>
+ <para>The string to repeat.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>count</term>
+ <listitem>
+ <para>The number of times to repeat the string.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ </doc:template>
+
+ <xsl:template name="str:generate-string">
+ <xsl:param name="text"/>
+ <xsl:param name="count"/>
+
+ <xsl:choose>
+ <xsl:when test="string-length($text) = 0 or $count &lt;= 0"/>
+ <xsl:otherwise>
+ <xsl:value-of select="$text"/>
+ <xsl:call-template name="str:generate-string">
+ <xsl:with-param name="text" select="$text"/>
+ <xsl:with-param name="count" select="$count - 1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/svg.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/svg.xsl
new file mode 100644
index 0000000..1254ab9
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/svg.xsl
@@ -0,0 +1,177 @@
+<xsl:stylesheet version='1.0'
+ xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
+ xmlns:svg='http://xsltsl.org/svg'
+ xmlns:doc="http://xsltsl.org/xsl/documentation/1.0"
+ exclude-result-prefixes="doc">
+
+ <xsl:variable name='svg-public-id' select='"-//W3C//DTD SVG 20010904//EN"'/>
+ <xsl:variable name='svg-system-id' select='"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"'/>
+
+ <doc:reference xmlns="">
+ <referenceinfo>
+ <releaseinfo role="meta">
+ $Id: svg.xsl 3991 2004-11-10 06:51:55Z balls $
+ </releaseinfo>
+ <author>
+ <surname>Ball</surname>
+ <firstname>Steve</firstname>
+ </author>
+ <copyright>
+ <year>2002</year>
+ <holder>Steve Ball</holder>
+ </copyright>
+ </referenceinfo>
+
+ <title>SVG Stylesheet</title>
+
+ <partintro>
+ <section>
+ <title>Introduction</title>
+
+ <para>This module provides templates for creating SVG images.</para>
+ </section>
+ </partintro>
+ </doc:reference>
+
+ <doc:template name="svg:aqua-button-defs" xmlns="">
+ <refpurpose>Aqua-style Button</refpurpose>
+
+ <refdescription>
+ <para>Part of the mechanism to create an Aqua-style button. Include a call to this template in your SVG document's <sgmltag>defs</sgmltag> element. This template only needs to be included once. Use this in conjunction with <sgmltag>svg:aqua-button</sgmltag>.</para>
+
+ <para>The default values for color1, color2 and color3 result in a grey button.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>prefix</term>
+ <listitem>
+ <para>A prefix to append to the identifiers used, so that they don't clash with other identifiers. Default: "aqua-".</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>color1</term>
+ <listitem>
+ <para>The base colour of the button. Default: "#d9d9d9".</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>color2</term>
+ <listitem>
+ <para>A "background" colour for the button. Should be a darker colour than color1. Default: "#a9a9a9".</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>color3</term>
+ <listitem>
+ <para>A highlight colour for the button. Should be a lighter colour than color1. Default: "#f9f9f9".</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns SVG result-tree-fragment.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="svg:aqua-button-defs">
+ <xsl:param name="prefix" select='"aqua-"'/>
+ <xsl:param name="color1" select='"#d9d9d9"'/>
+ <xsl:param name="color2" select='"#a9a9a9"'/>
+ <xsl:param name="color3" select='"#f9f9f9"'/>
+
+ <linearGradient id='{$prefix}gradient' x1='0%' y1='0%' x2='0%' y2='100%'>
+ <stop offset='0%' stop-color='{$color2}'/>
+ <stop offset='100%' stop-color='{$color1}'/>
+ </linearGradient>
+ <linearGradient id='{$prefix}highlight-gradient' x1='0%' y1='0%' x2='0%' y2='100%'>
+ <stop offset='0%' stop-color='#ffffff'/>
+ <stop offset='75%' stop-color='{$color3}' stop-opacity='0'/>
+ <stop offset='100%' stop-color='{$color3}' stop-opacity='0'/>
+ </linearGradient>
+ <linearGradient id='{$prefix}revhighlight-gradient' x1='0%' y1='100%' x2='0%' y2='0%'>
+ <stop offset='0%' stop-color='#ffffff'/>
+ <stop offset='50%' stop-color='{$color3}' stop-opacity='0'/>
+ <stop offset='100%' stop-color='{$color3}' stop-opacity='0'/>
+ </linearGradient>
+ <linearGradient id='{$prefix}corner-left-gradient' x1='0%' y1='0%' x2='100%' y2='100%'>
+ <stop offset='0%' stop-color='#000000'/>
+ <stop offset='100%' stop-color='{$color3}' stop-opacity='0'/>
+ </linearGradient>
+ <linearGradient id='{$prefix}corner-right-gradient' x1='100%' y1='0%' x2='0%' y2='100%'>
+ <stop offset='0%' stop-color='#000000'/>
+ <stop offset='100%' stop-color='{$color3}' stop-opacity='0'/>
+ </linearGradient>
+
+ <filter id='{$prefix}filter-blur' filterUnits='userSpaceOnUse' x='0' y='0' width='200' height='100'>
+ <feGaussianBlur in='SourceGraphic' stdDeviation='2'/>
+ </filter>
+ <filter id='{$prefix}drop-shadow' y='-5' height='100'>
+ <feColorMatrix type='matrix' in='SourceAlpha' result='inglow'
+ values='.5 .5 .5 1 0
+ .5 .5 .5 1 0
+ .5 .5 .5 1 0
+ 0 0 0 1 0'/>
+ <feBlend mode='multiply' in2='SourceGraphic' in='inglow' result='innerglow'/>
+
+ <feGaussianBlur stdDeviation='4' in='SourceAlpha' result='shadow'/>
+ <feColorMatrix type='matrix' in='shadow' result='lightshadow'
+ values='.33 .33 .33 1 0
+ .33 .33 .33 1 0
+ .33 .33 .33 1 0
+ 0 0 0 1 0'/>
+ <feOffset in='lightshadow' dx='0' dy='3' result='dropshadow'/>
+ <feMerge>
+ <feMergeNode in='dropshadow'/>
+ <feMergeNode in='innerglow'/>
+ </feMerge>
+ </filter>
+
+ </xsl:template>
+
+ <doc:template name="svg:aqua-button" xmlns="">
+ <refpurpose>Aqua-style Button</refpurpose>
+
+ <refdescription>
+ <para>Part of the mechanism to create an Aqua-style button. Include a call to this template in your SVG document where you want a button to appear. This template can be used many times in a single SVG document. Use this in conjunction with <sgmltag>svg:aqua-button-defs</sgmltag>.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>prefix</term>
+ <listitem>
+ <para>A prefix to append to the identifiers used, so that they don't clash with other identifiers. Default: "aqua-".</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns SVG result-tree-fragment.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name='svg:aqua-button'>
+ <xsl:param name="prefix" select='"aqua-"'/>
+
+ <g filter='url(#{$prefix}drop-shadow)'>
+ <clipPath id='{$prefix}main-shape'>
+ <path clip-rule='evenodd'
+ d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
+ </clipPath>
+ <path fill="url(#{$prefix}gradient)" stroke="none"
+ d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
+ <path clip-path='url(#{$prefix}main-shape)' fill='url(#{$prefix}corner-left-gradient)' stroke='none' filter='url(#{$prefix}filter-blur)'
+ d="M50,57 L13,57 A35,35 -90 0,1 50,30 z" />
+ <path clip-path='url(#{$prefix}main-shape)' fill='url(#{$prefix}corner-right-gradient)' stroke='none' filter='url(#{$prefix}filter-blur)'
+ d="M150,30 A35,35 90 0,1 190,57 L150,57 z" />
+ <path fill="url(#{$prefix}highlight-gradient)" stroke="none" stroke-width='1'
+ d="M50,65 C20,65 20,35 50,35 L150,35 C180,35 180,65 150,65 z" />
+ <path filter='url(#{$prefix}filter-blur)' fill="url(#{$prefix}revhighlight-gradient)" stroke="none"
+ d="M50,85 C10,85 10,35 50,35 L150,35 C190,35 190,85 150,85 z" />
+ </g>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/uri.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/uri.xsl
new file mode 100644
index 0000000..df1f738
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/keynote/xsltsl/uri.xsl
@@ -0,0 +1,580 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet
+ version="1.0"
+ extension-element-prefixes="doc"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://xsltsl.org/xsl/documentation/1.0"
+ xmlns:uri="http://xsltsl.org/uri"
+>
+
+ <doc:reference xmlns="">
+ <referenceinfo>
+ <releaseinfo role="meta">
+ $Id: uri.xsl 3991 2004-11-10 06:51:55Z balls $
+ </releaseinfo>
+ <author>
+ <surname>Diamond</surname>
+ <firstname>Jason</firstname>
+ </author>
+ <copyright>
+ <year>2001</year>
+ <holder>Jason Diamond</holder>
+ </copyright>
+ </referenceinfo>
+
+ <title>URI (Uniform Resource Identifier) Processing</title>
+
+ <partintro>
+ <section>
+ <title>Introduction</title>
+ <para>This module provides templates for processing URIs (Uniform Resource Identifers).</para>
+ </section>
+ </partintro>
+
+ </doc:reference>
+
+ <doc:template name="uri:is-absolute-uri" xmlns="">
+ <refpurpose>Determines if a URI is absolute or relative.</refpurpose>
+
+ <refdescription>
+ <para>Absolute URIs start with a scheme (like "http:" or "mailto:").</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>uri</term>
+ <listitem>
+ <para>An absolute or relative URI.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns 'true' if the URI is absolute or '' if it's not.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="uri:is-absolute-uri">
+ <xsl:param name="uri"/>
+
+ <xsl:if test="contains($uri, ':')">
+ <xsl:value-of select="true()"/>
+ </xsl:if>
+
+ </xsl:template>
+
+ <doc:template name="uri:get-uri-scheme" xmlns="">
+ <refpurpose>Gets the scheme part of a URI.</refpurpose>
+
+ <refdescription>
+ <para>The ':' is not part of the scheme.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>uri</term>
+ <listitem>
+ <para>An absolute or relative URI.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns the scheme (without the ':') or '' if the URI is relative.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="uri:get-uri-scheme">
+ <xsl:param name="uri"/>
+ <xsl:if test="contains($uri, ':')">
+ <xsl:value-of select="substring-before($uri, ':')"/>
+ </xsl:if>
+ </xsl:template>
+
+ <doc:template name="uri:get-uri-authority" xmlns="">
+ <refpurpose>Gets the authority part of a URI.</refpurpose>
+
+ <refdescription>
+ <para>The authority usually specifies the host machine for a resource. It always follows '//' in a typical URI.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>uri</term>
+ <listitem>
+ <para>An absolute or relative URI.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns the authority (without the '//') or '' if the URI has no authority.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="uri:get-uri-authority">
+ <xsl:param name="uri"/>
+
+ <xsl:variable name="a">
+ <xsl:choose>
+ <xsl:when test="contains($uri, ':')">
+ <xsl:if test="substring(substring-after($uri, ':'), 1, 2) = '//'">
+ <xsl:value-of select="substring(substring-after($uri, ':'), 3)"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="substring($uri, 1, 2) = '//'">
+ <xsl:value-of select="substring($uri, 3)"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="contains($a, '/')">
+ <xsl:value-of select="substring-before($a, '/')" />
+ </xsl:when>
+ <xsl:when test="contains($a, '?')">
+ <xsl:value-of select="substring-before($a, '?')" />
+ </xsl:when>
+ <xsl:when test="contains($a, '#')">
+ <xsl:value-of select="substring-before($a, '#')" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$a" />
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:template>
+
+ <doc:template name="uri:get-uri-path" xmlns="">
+ <refpurpose>Gets the path part of a URI.</refpurpose>
+
+ <refdescription>
+ <para>The path usually comes after the '/' in a URI.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>uri</term>
+ <listitem>
+ <para>An absolute or relative URI.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns the path (with any leading '/') or '' if the URI has no path.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="uri:get-uri-path">
+ <xsl:param name="uri"/>
+
+ <xsl:variable name="p">
+ <xsl:choose>
+ <xsl:when test="contains($uri, '//')">
+ <xsl:if test="contains(substring-after($uri, '//'), '/')">
+ <xsl:value-of select="concat('/', substring-after(substring-after($uri, '//'), '/'))"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="contains($uri, ':')">
+ <xsl:value-of select="substring-after($uri, ':')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$uri"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="contains($p, '?')">
+ <xsl:value-of select="substring-before($p, '?')" />
+ </xsl:when>
+ <xsl:when test="contains($p, '#')">
+ <xsl:value-of select="substring-before($p, '#')" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$p" />
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:template>
+
+ <doc:template name="uri:get-uri-query" xmlns="">
+ <refpurpose>Gets the query part of a URI.</refpurpose>
+
+ <refdescription>
+ <para>The query comes after the '?' in a URI.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>uri</term>
+ <listitem>
+ <para>An absolute or relative URI.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns the query (without the '?') or '' if the URI has no query.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="uri:get-uri-query">
+ <xsl:param name="uri"/>
+
+ <xsl:variable name="q" select="substring-after($uri, '?')"/>
+
+ <xsl:choose>
+ <xsl:when test="contains($q, '#')">
+ <xsl:value-of select="substring-before($q, '#')"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$q"/></xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:template>
+
+ <doc:template name="uri:get-uri-fragment" xmlns="">
+ <refpurpose>Gets the fragment part of a URI.</refpurpose>
+
+ <refdescription>
+ <para>The fragment comes after the '#' in a URI.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>uri</term>
+ <listitem>
+ <para>An absolute or relative URI.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>Returns the fragment (without the '#') or '' if the URI has no fragment.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="uri:get-uri-fragment">
+ <xsl:param name="uri"/>
+
+ <xsl:value-of select="substring-after($uri, '#')"/>
+
+ </xsl:template>
+
+ <doc:template name="uri:resolve-uri" xmlns="">
+ <refpurpose>Resolves a URI reference against a base URI.</refpurpose>
+
+ <refdescription>
+ <para>This template follows the guidelines specified by <ulink url="ftp://ftp.isi.edu/in-notes/rfc2396.txt">RFC 2396</ulink>.</para>
+ </refdescription>
+
+ <refparameter>
+ <variablelist>
+ <varlistentry>
+ <term>reference</term>
+ <listitem>
+ <para>A (potentially relative) URI reference.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>base</term>
+ <listitem>
+ <para>The base URI.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>document</term>
+ <listitem>
+ <para>The URI of the current document. This defaults to the value of the base URI if not specified.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn>
+ <para>The "combined" URI.</para>
+ </refreturn>
+ </doc:template>
+
+ <xsl:template name="uri:resolve-uri">
+ <xsl:param name="reference"/>
+ <xsl:param name="base"/>
+ <xsl:param name="document" select="$base"/>
+
+ <xsl:variable name="reference-scheme">
+ <xsl:call-template name="uri:get-uri-scheme">
+ <xsl:with-param name="uri" select="$reference"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="reference-authority">
+ <xsl:call-template name="uri:get-uri-authority">
+ <xsl:with-param name="uri" select="$reference"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="reference-path">
+ <xsl:call-template name="uri:get-uri-path">
+ <xsl:with-param name="uri" select="$reference"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="reference-query">
+ <xsl:call-template name="uri:get-uri-query">
+ <xsl:with-param name="uri" select="$reference"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="reference-fragment">
+ <xsl:call-template name="uri:get-uri-fragment">
+ <xsl:with-param name="uri" select="$reference"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+
+ <xsl:when test="
+ not(string-length($reference-scheme)) and
+ not(string-length($reference-authority)) and
+ not(string-length($reference-path)) and
+ not(string-length($reference-query))"
+ >
+
+ <xsl:choose>
+ <xsl:when test="contains($document, '?')">
+ <xsl:value-of select="substring-before($document, '?')"/>
+ </xsl:when>
+ <xsl:when test="contains($document, '#')">
+ <xsl:value-of select="substring-before($document, '#')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$document"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="string-length($reference-fragment)">
+ <xsl:value-of select="concat('#', $reference-fragment)"/>
+ </xsl:if>
+
+ </xsl:when>
+
+ <xsl:when test="string-length($reference-scheme)">
+
+ <xsl:value-of select="$reference"/>
+
+ </xsl:when>
+
+ <xsl:otherwise>
+
+ <xsl:variable name="base-scheme">
+ <xsl:call-template name="uri:get-uri-scheme">
+ <xsl:with-param name="uri" select="$base"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="base-authority">
+ <xsl:call-template name="uri:get-uri-authority">
+ <xsl:with-param name="uri" select="$base"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="base-path">
+ <xsl:call-template name="uri:get-uri-path">
+ <xsl:with-param name="uri" select="$base"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="base-query">
+ <xsl:call-template name="uri:get-uri-query">
+ <xsl:with-param name="uri" select="$base"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="base-fragment">
+ <xsl:call-template name="uri:get-uri-fragment">
+ <xsl:with-param name="uri" select="$base"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="result-authority">
+ <xsl:choose>
+ <xsl:when test="string-length($reference-authority)">
+ <xsl:value-of select="$reference-authority"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$base-authority"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="result-path">
+ <xsl:choose>
+ <!-- don't normalize absolute paths -->
+ <xsl:when test="starts-with($reference-path, '/')">
+ <xsl:value-of select="$reference-path" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="uri:normalize-path">
+ <xsl:with-param name="path">
+ <xsl:if test="string-length($reference-authority) = 0 and substring($reference-path, 1, 1) != '/'">
+ <xsl:call-template name="uri:get-path-without-file">
+ <xsl:with-param name="path-with-file" select="$base-path"/>
+ </xsl:call-template>
+ <xsl:value-of select="'/'"/>
+ </xsl:if>
+ <xsl:value-of select="$reference-path"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:value-of select="concat($base-scheme, '://', $result-authority, $result-path)"/>
+
+ <xsl:if test="string-length($reference-query)">
+ <xsl:value-of select="concat('?', $reference-query)"/>
+ </xsl:if>
+
+ <xsl:if test="string-length($reference-fragment)">
+ <xsl:value-of select="concat('#', $reference-fragment)"/>
+ </xsl:if>
+
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:template>
+
+ <xsl:template name="uri:get-path-without-file">
+ <xsl:param name="path-with-file" />
+ <xsl:param name="path-without-file" />
+
+ <xsl:choose>
+ <xsl:when test="contains($path-with-file, '/')">
+ <xsl:call-template name="uri:get-path-without-file">
+ <xsl:with-param name="path-with-file" select="substring-after($path-with-file, '/')" />
+ <xsl:with-param name="path-without-file">
+ <xsl:choose>
+ <xsl:when test="$path-without-file">
+ <xsl:value-of select="concat($path-without-file, '/', substring-before($path-with-file, '/'))" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before($path-with-file, '/')" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$path-without-file" />
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:template>
+
+ <xsl:template name="uri:normalize-path">
+ <xsl:param name="path"/>
+ <xsl:param name="result" select="''"/>
+
+ <xsl:choose>
+ <xsl:when test="string-length($path)">
+ <xsl:choose>
+ <xsl:when test="$path = '/'">
+ <xsl:value-of select="concat($result, '/')"/>
+ </xsl:when>
+ <xsl:when test="$path = '.'">
+ <xsl:value-of select="concat($result, '/')"/>
+ </xsl:when>
+ <xsl:when test="$path = '..'">
+ <xsl:call-template name="uri:get-path-without-file">
+ <xsl:with-param name="path-with-file" select="$result"/>
+ </xsl:call-template>
+ <xsl:value-of select="'/'"/>
+ </xsl:when>
+ <xsl:when test="contains($path, '/')">
+ <!-- the current segment -->
+ <xsl:variable name="s" select="substring-before($path, '/')"/>
+ <!-- the remaining path -->
+ <xsl:variable name="p">
+ <xsl:choose>
+ <xsl:when test="substring-after($path, '/') = ''">
+ <xsl:value-of select="'/'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-after($path, '/')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$s = ''">
+ <xsl:call-template name="uri:normalize-path">
+ <xsl:with-param name="path" select="$p"/>
+ <xsl:with-param name="result" select="$result"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$s = '.'">
+ <xsl:call-template name="uri:normalize-path">
+ <xsl:with-param name="path" select="$p"/>
+ <xsl:with-param name="result" select="$result"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$s = '..'">
+ <xsl:choose>
+ <xsl:when test="string-length($result) and (substring($result, string-length($result) - 2) != '/..')">
+ <xsl:call-template name="uri:normalize-path">
+ <xsl:with-param name="path" select="$p"/>
+ <xsl:with-param name="result">
+ <xsl:call-template name="uri:get-path-without-file">
+ <xsl:with-param name="path-with-file" select="$result"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="uri:normalize-path">
+ <xsl:with-param name="path" select="$p"/>
+ <xsl:with-param name="result" select="concat($result, '/..')"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="uri:normalize-path">
+ <xsl:with-param name="path" select="$p"/>
+ <xsl:with-param name="result" select="concat($result, '/', $s)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($result, '/', $path)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$result"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/svg/default.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/svg/default.xsl
new file mode 100644
index 0000000..86ea133
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/svg/default.xsl
@@ -0,0 +1,686 @@
+<xsl:stylesheet version='1.0'
+ xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:doc='http://nwalsh.com/xsl/documentation/1.0'
+ exclude-result-prefixes='doc'>
+
+ <xsl:import href='../../lib/lib.xsl'/>
+
+ <doc:article xmlns=''>
+ <articleinfo>
+ <title>SVG Slides</title>
+
+ <author>
+ <firstname>Steve</firstname>
+ <surname>Ball</surname>
+ <affiliation>
+ <orgname>Zveno</orgname>
+ <address>
+ <otheraddr>
+ <ulink url='http://www.zveno.com/'>zveno.com</ulink>
+ </otheraddr>
+ </address>
+ </affiliation>
+ </author>
+
+ <releaseinfo>$Id: default.xsl 6567 2007-01-30 06:43:18Z xmldoc $</releaseinfo>
+
+ <copyright>
+ <year>2002</year>
+ <holder>Steve Ball, Zveno Pty Ltd</holder>
+ </copyright>
+
+ <legalnotice>
+ <para>Zveno Pty Ltd makes this software and associated documentation available free of charge for any purpose. You may make copies of the software but you must include all of this notice on any copy.</para>
+ <para>Zveno Pty Ltd does not warrant that this software is error free or fit for any purpose. Zveno Pty Ltd disclaims any liability for all claims, expenses, losses, damages and costs any user may incur as a result of using, copying or modifying the software.</para>
+ </legalnotice>
+ </articleinfo>
+ </doc:article>
+
+ <xsl:variable name='svg-public-id' select='"-//W3C//DTD SVG 20001102//EN"'/>
+ <xsl:variable name='svg-system-id' select='"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"'/>
+
+ <xsl:output method="xml" indent='yes' doctype-public='-//W3C//DTD SVG 20001102//EN' doctype-system='http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd' cdata-section-elements="script"/>
+
+ <xsl:strip-space elements='slides foil foilgroup'/>
+
+ <xsl:param name='css-stylesheet'>slides.css</xsl:param>
+ <xsl:param name='graphics.dir'>graphics</xsl:param>
+
+ <xsl:param name='toc.bg.color'>white</xsl:param>
+
+ <xsl:param name='font.family'>Arial</xsl:param>
+ <xsl:param name='bg.color'>white</xsl:param>
+ <xsl:param name='fg.color'>black</xsl:param>
+
+ <xsl:param name='foil.width' select='800'/>
+ <xsl:param name='foil.height' select='600'/>
+
+ <xsl:param name='toc.line.max' select='7'/>
+
+ <xsl:attribute-set name="svg.attributes">
+ <xsl:attribute name="xml:space">preserve</xsl:attribute>
+ <xsl:attribute name="width">100%</xsl:attribute>
+ <xsl:attribute name="height"><xsl:value-of select='$foil.height'/></xsl:attribute>
+ <xsl:attribute name="style">font-family: <xsl:value-of select='$font.family'/>; font-size: 18pt; fill: <xsl:value-of select='$fg.color'/>; stroke: <xsl:value-of select='$fg.color'/>; background-color: <xsl:value-of select='$bg.color'/></xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="text-title">
+ <xsl:attribute name="style">font-size: 24pt; font-weight: bold</xsl:attribute>
+ </xsl:attribute-set>
+ <xsl:attribute-set name="text-author">
+ <xsl:attribute name="style">font-size: 18pt</xsl:attribute>
+ </xsl:attribute-set>
+ <xsl:attribute-set name="text-main">
+ <xsl:attribute name="style">font-size: 18pt</xsl:attribute>
+ </xsl:attribute-set>
+
+<!-- ============================================================ -->
+
+<xsl:template name="graphics.dir">
+ <!-- danger will robinson: template shadows parameter -->
+ <xsl:variable name="source.graphics.dir">
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'graphics-dir'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$source.graphics.dir != ''">
+ <xsl:value-of select="$source.graphics.dir"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$graphics.dir"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="css-stylesheet">
+ <!-- danger will robinson: template shadows parameter -->
+ <xsl:variable name="source.css-stylesheet">
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'css-stylesheet'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$source.css-stylesheet != ''">
+ <xsl:value-of select="$source.css-stylesheet"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$css-stylesheet"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+ <xsl:template match="/">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="slides">
+ <xsl:if test='$css-stylesheet != ""'>
+ <xsl:processing-instruction name='xml-stylesheet'>
+ <xsl:text> href="</xsl:text>
+ <xsl:value-of select='$css-stylesheet'/>
+ <xsl:text>" type="text/css"</xsl:text>
+ </xsl:processing-instruction>
+ </xsl:if>
+
+ <svg xsl:use-attribute-sets="svg.attributes">
+ <title>
+ <xsl:value-of select="slidesinfo/title"/>
+ </title>
+
+ <defs>
+ <xsl:call-template name='svg.defs'/>
+ </defs>
+
+ <!-- Create the title foil -->
+ <g id='title' display='inline'>
+ <xsl:call-template name='render-background'>
+ <xsl:with-param name='mode'>title</xsl:with-param>
+ <xsl:with-param name='id' select='"title-bg"'/>
+ </xsl:call-template>
+
+ <text id='title-main' x='50%' y='33.3%' text-anchor='middle' xsl:use-attribute-sets='text-title'>
+ <xsl:value-of select='/slides/slidesinfo/title'/>
+ </text>
+ <g id='title-author'>
+ <xsl:apply-templates select='/slides/slidesinfo/author|/slides/slidesinfo/corpauthor'/>
+ </g>
+
+ <set attributeName='display' to='none' attributeType='CSS'>
+ <xsl:attribute name='begin'>
+ <xsl:text>title.click</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name='end'>
+ <xsl:text>foil1-previous-button.click; </xsl:text>
+ <xsl:value-of select='concat("foil", count(//foil), ".click")'/>
+ <xsl:for-each select='//foil'>
+ <xsl:value-of select='concat("; foil", count(preceding-sibling::foil|preceding::foil) + 1, "-title-button.click")'/>
+ </xsl:for-each>
+ </xsl:attribute>
+ </set>
+ </g>
+
+ <!-- Create the TOC -->
+ <xsl:if test='foilgroup'>
+ <g id='toc' display='none'>
+
+ <xsl:call-template name='render-background'>
+ <xsl:with-param name='mode'>toc</xsl:with-param>
+ <xsl:with-param name='id' select='"index-bg"'/>
+ </xsl:call-template>
+
+ <text id='toc-main' x='50%' y='50' text-anchor='middle' xsl:use-attribute-sets='text-title'>
+ <xsl:value-of select='/slides/slidesinfo/title'/>
+ </text>
+
+ <set attributeName='display' to='inline' attributeType='CSS'>
+ <xsl:attribute name='begin'>
+ <xsl:text>title.click</xsl:text>
+ <xsl:for-each select='//foil'>
+ <xsl:value-of select='concat("; foil", count(preceding-sibling::foil|preceding::foil) + 1, "-toc-button.click")'/>
+ </xsl:for-each>
+ </xsl:attribute>
+ <xsl:attribute name='end'>
+ <xsl:text>toc.click; toc-content.click</xsl:text>
+ <xsl:for-each select='//foilgroup'>
+ <xsl:value-of select='concat("; index-foilgroup-", count(preceding-sibling::foilgroup|preceding::foilgroup) + 1, ".click")'/>
+ </xsl:for-each>
+ </xsl:attribute>
+ </set>
+
+ </g>
+ <g id='toc-content' display='none'>
+ <xsl:call-template name='layout-toc-columns'>
+ <xsl:with-param name='nodes' select='foilgroup'/>
+ <xsl:with-param name='x'>
+ <xsl:choose>
+ <xsl:when test='count(foilgroup) > $toc.line.max'>
+ <xsl:text>50</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>75</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ <set attributeName='display' to='inline' attributeType='CSS'>
+ <xsl:attribute name='begin'>
+ <xsl:text>title.click</xsl:text>
+ <xsl:for-each select='//foil'>
+ <xsl:value-of select='concat("; foil", count(preceding-sibling::foil|preceding::foil) + 1, "-toc-button.click")'/>
+ </xsl:for-each>
+ </xsl:attribute>
+ <xsl:attribute name='end'>
+ <xsl:text>toc.click; toc-content.click</xsl:text>
+ <xsl:for-each select='//foilgroup'>
+ <xsl:value-of select='concat("; index-foilgroup-", count(preceding-sibling::foilgroup|preceding::foilgroup) + 1, ".click")'/>
+ </xsl:for-each>
+ </xsl:attribute>
+ </set>
+ </g>
+ </xsl:if>
+
+ <xsl:apply-templates select='*[not(self::slidesinfo)]'/>
+
+ </svg>
+ </xsl:template>
+
+ <!-- The application is expected to override these templates -->
+ <xsl:template name='svg.defs'/>
+ <xsl:template name='render-background'>
+ <!-- mode lets us know what kind of foil is being produced -->
+ <xsl:param name='mode'/>
+
+ <!-- id is a required parameter to include in the generated graphics.
+ - This is important for slide transitions.
+ -->
+ <xsl:param name='id'/>
+
+ <!-- This background covers most of the foil area,
+ - but leaves a space in the lower left corner for the
+ - controls
+ -->
+
+ <xsl:choose>
+ <xsl:when test='$mode = "toc"'>
+ <g id='{$id}'>
+ <!--
+ <rect width='{2 * $foil.width}' height='75' style='fill: {$toc.bg.color}; stroke: none'/>
+-->
+ <rect width="{2 * $foil.width}" height="{$foil.height - 200}" style="fill: {$toc.bg.color}; stroke: none"/>
+ <rect transform='translate(100 {$foil.height - 200})' width="{2 * $foil.width}" height="200" style="fill: {$toc.bg.color}; stroke: none"/>
+ </g>
+ </xsl:when>
+ <xsl:otherwise>
+ <g id="{$id}">
+ <rect width="{2 * $foil.width}" height="{$foil.height - 200}" style="fill: {$bg.color}; stroke: none"/>
+ <rect transform='translate(100 {$foil.height - 200})' width="{2 * $foil.width}" height="200" style="fill: {$bg.color}; stroke: none"/>
+ </g>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match='author'>
+ <text x='50%' y='60%' text-anchor='middle' xsl:use-attribute-sets='text-author'>
+ <tspan>
+ <xsl:apply-templates select='firstname'/>
+ </tspan>
+ <tspan>
+ <xsl:text> </xsl:text>
+ </tspan>
+ <tspan>
+ <xsl:apply-templates select='surname'/>
+ </tspan>
+ <xsl:if test='affiliation'>
+ <tspan x='0' y='20'>
+ <xsl:apply-templates select='affiliation'/>
+ </tspan>
+ </xsl:if>
+ </text>
+ </xsl:template>
+ <xsl:template match='corpauthor'>
+ <text x='50%' y='70%' text-anchor='middle' xsl:use-attribute-sets='text-author'>
+ <xsl:apply-templates/>
+ </text>
+ </xsl:template>
+
+ <xsl:template name='layout-toc-columns'>
+ <xsl:param name='nodes'/>
+ <xsl:param name='entries-are-links' select='"yes"'/>
+ <xsl:param name='highlight'/>
+ <xsl:param name='x' select='50'/>
+
+ <xsl:choose>
+ <xsl:when test='not($nodes)'/>
+
+ <xsl:otherwise>
+ <xsl:for-each select='$nodes[position() &lt;= $toc.line.max]'>
+ <g>
+ <xsl:if test='$entries-are-links = "yes"'>
+ <xsl:attribute name='id'>
+ <xsl:text>index-foilgroup-</xsl:text>
+ <xsl:value-of select='count(preceding-sibling::foilgroup|preceding::foilgroup) + 1'/>
+ </xsl:attribute>
+ </xsl:if>
+ <text x='{$x}' y='{position() * 35 + 75}' xsl:use-attribute-sets='text-main'>
+ <xsl:if test='$highlight and generate-id($highlight) = generate-id(.)'>
+ <xsl:attribute name='fill'>#ff8000</xsl:attribute>
+ <xsl:attribute name='stroke'>#ff8000</xsl:attribute>
+ </xsl:if>
+ <xsl:value-of select='title'/>
+ </text>
+ <xsl:if test='$entries-are-links = "yes"'>
+ <set attributeName='fill' attributeType='CSS' to='#ff0033' begin='mouseover' end='mouseout'/>
+ <set attributeName='stroke' attributeType='CSS' to='#ff0033' begin='mouseover' end='mouseout'/>
+ </xsl:if>
+ </g>
+ </xsl:for-each>
+
+ <xsl:call-template name='layout-toc-columns'>
+ <xsl:with-param name='nodes' select='$nodes[position() > $toc.line.max]'/>
+ <xsl:with-param name='entries-are-links' select='$entries-are-links'/>
+ <xsl:with-param name='highlight' select='$highlight'/>
+ <xsl:with-param name='x' select='$x + 200'/>
+ </xsl:call-template>
+
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match='foilgroup'>
+ <xsl:variable name='fg-num' select='count(preceding-sibling::foilgroup) + 1'/>
+
+ <!-- Add a separator foil to indicate progress -->
+ <g id='toc-sep-{$fg-num}' display='none'>
+ <xsl:call-template name='render-background'>
+ <xsl:with-param name='mode'>toc</xsl:with-param>
+ <xsl:with-param name='id' select='concat("toc-sep-", $fg-num, "-bg")'/>
+ </xsl:call-template>
+
+ <text id='toc-sep-{$fg-num}-main' x='50%' y='50' text-anchor='middle' xsl:use-attribute-sets='text-title'>
+ <xsl:value-of select='/slides/slidesinfo/title'/>
+ </text>
+
+ <set attributeName='display' to='inline' attributeType='CSS' end='toc-sep-{$fg-num}.click; toc-sep-{$fg-num}-content.click'>
+ <xsl:attribute name='begin'>
+ <xsl:choose>
+ <xsl:when test='$fg-num = 1'>
+ <xsl:text>index-foilgroup-1.click; toc.click; toc-content.click</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>index-foilgroup-</xsl:text>
+ <xsl:value-of select='count(preceding-sibling::foilgroup) + 1'/>
+ <xsl:text>.click; foil</xsl:text>
+ <xsl:value-of select='count(preceding::foil)'/>
+ <xsl:text>.click</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </set>
+
+ </g>
+ <g id='toc-sep-{$fg-num}-content' display='none'>
+ <xsl:call-template name='layout-toc-columns'>
+ <xsl:with-param name='nodes' select='/slides/foilgroup'/>
+ <xsl:with-param name='entries-are-links' select='no'/>
+ <xsl:with-param name='highlight' select='.'/>
+ <xsl:with-param name='x'>
+ <xsl:choose>
+ <xsl:when test='count(/slides/foilgroup) > $toc.line.max'>
+ <xsl:text>50</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>75</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ <set attributeName='display' to='inline' attributeType='CSS' end='toc-sep-{$fg-num}.click; toc-sep-{$fg-num}-content.click'>
+ <xsl:attribute name='begin'>
+ <xsl:choose>
+ <xsl:when test='$fg-num = 1'>
+ <xsl:text>index-foilgroup-1.click; toc.click; toc-content.click</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>index-foilgroup-</xsl:text>
+ <xsl:value-of select='count(preceding-sibling::foilgroup) + 1'/>
+ <xsl:text>.click; foil</xsl:text>
+ <xsl:value-of select='count(preceding::foil)'/>
+ <xsl:text>.click</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </set>
+ </g>
+
+ <!-- still want TOC and Previous buttons -->
+
+ <xsl:apply-templates select='foil'/>
+ </xsl:template>
+
+ <xsl:template match='foil'>
+ <xsl:variable name='number' select='count(preceding-sibling::foil|preceding::foil) + 1'/>
+
+ <g id='foil{$number}' display='none'>
+ <xsl:call-template name='render-background'>
+ <xsl:with-param name='id' select='concat("foil", $number, "-bg")'/>
+ </xsl:call-template>
+
+ <text id='foil{$number}-title' transform='translate(50 50)'>
+ <tspan id='foil{$number}-title-foilgroup' x='0' y='0' xsl:use-attribute-sets='text-title'>
+ <xsl:choose>
+ <xsl:when test='parent::foilgroup'>
+ <xsl:value-of select='../title'/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select='/slides/slidesinfo/title'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </tspan>
+ <tspan> - </tspan>
+ <tspan id='foil{$number}-title-foil' xsl:use-attribute-sets='text-title'>
+ <xsl:value-of select='title'/>
+ </tspan>
+ </text>
+
+ <g transform='translate(50 100)'>
+ <xsl:apply-templates select='*[not(self::title)][1]'/>
+ </g>
+
+ <xsl:call-template name='foil-events'>
+ <xsl:with-param name='number' select='$number'/>
+ </xsl:call-template>
+
+ </g>
+
+ <!-- Add previous and TOC buttons
+ - (no need for next, mouse click does that)
+ -->
+
+ <g id='foil{$number}-toc-button' transform='translate(20 {$foil.height - 180})' display='none'>
+ <g style='opacity: 0'>
+ <xsl:call-template name='toc-button'/>
+ <text x='25' y='28'>TOC</text>
+ <set attributeName='opacity' to='1' attributeType='CSS' begin='mouseover' end='mouseout'/>
+ </g>
+
+ <xsl:call-template name='foil-events'>
+ <xsl:with-param name='number' select='$number'/>
+ </xsl:call-template>
+
+ </g>
+ <xsl:if test='$number != 1'>
+ <g id='foil{$number}-previous-button' transform='translate(20 {$foil.height - 150})' display='none'>
+ <g style='opacity: 0'>
+ <xsl:call-template name='previous-button'/>
+ <text x='17' y='28'>Previous</text>
+ <set attributeName='opacity' to='1' attributeType='CSS' begin='mouseover' end='mouseout'/>
+ </g>
+
+ <xsl:call-template name='foil-events'>
+ <xsl:with-param name='number' select='$number'/>
+ </xsl:call-template>
+
+ </g>
+ </xsl:if>
+
+ </xsl:template>
+
+ <!-- The application may override these -->
+ <xsl:template name='toc-button'/>
+ <xsl:template name='previous-button'/>
+
+ <xsl:template match='foilinfo|foil/title|foil/subtitle|foil/titleabbrev'/>
+
+ <xsl:template name='foil-events'>
+ <xsl:param name='number' select='0'/>
+ <xsl:param name='attribute' select='"display"'/>
+ <xsl:param name='onvalue' select='"inline"'/>
+ <xsl:param name='offvalue' select='"none"'/>
+
+ <!-- Must account for first and last foils and also foilgroup separators:
+ - On first foil, previous goes back to main TOC,
+ - If no TOC foil, then go to title foil instead.
+ - First foil in foilgroup follows group separator.
+ - Last foil in foilgroup goes to next group separator,
+ - except last foil in last group goes to main TOC.
+ -->
+
+ <xsl:choose>
+ <xsl:when test='$number = 1'>
+ <!-- This is the very first foil -->
+ <set attributeName='{$attribute}' to='{$onvalue}' attributeType='CSS'
+ end='foil{$number}.click; foil{$number}-toc-button.click'>
+ <xsl:attribute name='begin'>
+ <xsl:choose>
+ <xsl:when test='parent::foilgroup'>
+ <xsl:value-of select='concat("toc-sep-", count(preceding::foilgroup) + 1, ".click")'/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>title.click</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test='parent::foilgroup and not(preceding-sibling::foil)'>
+ <xsl:value-of select='concat("; index-foilgroup-", count(preceding::foilgroup) + 1, ".click")'/>
+ </xsl:if>
+ <xsl:value-of select='concat("; foil", $number + 1, "-previous-button.click")'/>
+ </xsl:attribute>
+ </set>
+ </xsl:when>
+ <xsl:when test='count(following-sibling::foil|following::foil) = 0'>
+ <!-- This is the very last foil -->
+ <set attributeName='{$attribute}' to='{$onvalue}' attributeType='CSS'
+ end='foil{$number}.click; foil{$number}-toc-button.click; foil{$number}-previous-button.click'>
+ <xsl:attribute name='begin'>
+ <xsl:choose>
+ <xsl:when test='parent::foilgroup and not(preceding-sibling::foil)'>
+ <xsl:value-of select='concat("; index-foilgroup-", count(preceding::foilgroup) + 1, ".click; toc-sep-", count(preceding::foilgroup) + 1, ".click")'/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select='concat("foil", $number - 1, ".click")'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </set>
+ </xsl:when>
+ <xsl:otherwise>
+ <set attributeName='{$attribute}' to='{$onvalue}' attributeType='CSS'
+ end='foil{$number}.click; foil{$number}-toc-button.click; foil{$number}-previous-button.click'>
+ <xsl:attribute name='begin'>
+ <xsl:value-of select='concat("foil", $number + 1, "-previous-button.click")'/>
+ <xsl:choose>
+ <xsl:when test='parent::foilgroup and not(preceding-sibling::foil)'>
+ <xsl:value-of select='concat("; index-foilgroup-", count(preceding::foilgroup) + 1, ".click; toc-sep-", count(preceding::foilgroup) + 1, ".click")'/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select='concat("; foil", $number - 1, ".click")'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </set>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:template>
+
+ <xsl:template match="para">
+ <xsl:variable name='depth'>
+ <xsl:choose>
+ <xsl:when test='@depth'>
+ <xsl:value-of select='@depth'/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>1</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <g transform='translate(0 30)'>
+ <xsl:if test='not(@style)'>
+ <g transform='translate({25 * ($depth - 1)} 0)'>
+ <xsl:call-template name='bullet'/>
+ </g>
+ </xsl:if>
+
+ <text y="10">
+ <xsl:attribute name='x'>
+ <xsl:value-of select='25 * $depth'/>
+ </xsl:attribute>
+ <xsl:if test='@style'>
+ <xsl:attribute name='style'>
+ <xsl:value-of select='@style'/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:apply-templates/>
+ </text>
+
+ <xsl:apply-templates select='following-sibling::*[1]'/>
+ </g>
+ </xsl:template>
+
+ <xsl:template match='text()'>
+ <tspan>
+ <xsl:value-of select='.'/>
+ </tspan>
+ </xsl:template>
+
+ <xsl:template match='emphasis'>
+ <xsl:variable name='style'>
+ <xsl:choose>
+ <xsl:when test='@role = "bold"'>
+ <xsl:text>font-weight: bold</xsl:text>
+ </xsl:when>
+ <xsl:when test='@role = "italic"'>
+ <xsl:text>font-style: italic</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>font-style: italic</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <tspan style='{$style}'>
+ <xsl:value-of select='.'/>
+ </tspan>
+ </xsl:template>
+
+ <xsl:template match='listitem'>
+ <xsl:call-template name="bullet"/>
+ <g transform='translate(20 0)'>
+ <xsl:apply-templates/>
+ </g>
+ </xsl:template>
+
+ <xsl:template name="bullet">
+ <xsl:choose>
+ <xsl:when test="@depth = 1 or count(ancestor-or-self::listitem) = 1">
+ <xsl:call-template name="large-filled-circle"/>
+ </xsl:when>
+ <xsl:when test="@depth = 2 or count(ancestor-or-self::listitem) = 2">
+ <xsl:call-template name="small-open-circle"/>
+ </xsl:when>
+ <xsl:when test="@depth = 3 or count(ancestor-or-self::listitem) = 3">
+ <xsl:call-template name="small-filled-circle"/>
+ </xsl:when>
+ <xsl:when test="@depth = 4 or count(ancestor-or-self::listitem) = 4">
+ <xsl:call-template name="closed-toggle"/>
+ </xsl:when>
+ <xsl:when test="@depth = 5 or count(ancestor-or-self::listitem) = 5">
+ <xsl:call-template name="large-filled-circle"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="small-open-box"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="closed-toggle">
+ <polyline fill="white" stroke="black" stroke-width="1" points="0 0 10 5 0 10 0 0"/>
+ </xsl:template>
+ <xsl:template name="large-filled-circle">
+ <circle fill="black" cx="10" cy="6" r="5"/>
+ </xsl:template>
+ <xsl:template name="small-filled-circle">
+ <circle fill="black" cx="10" cy="6" r="2.5"/>
+ </xsl:template>
+ <xsl:template name="small-open-circle">
+ <circle fill="none" stroke="black" stroke-width="1" cx="10" cy="6" r="2.5"/>
+ </xsl:template>
+ <xsl:template name="small-open-box">
+ <rect fill="none" stroke="black" stroke-width="1" x="5" y="5" width="5" height="5"/>
+ </xsl:template>
+
+ <xsl:template match="subject">
+ <tspan style="font-weight: bold">
+ <xsl:apply-templates/>
+ </tspan>
+ </xsl:template>
+
+ <xsl:template match="informalexample">
+ </xsl:template>
+ <xsl:template match="programlisting">
+ <!-- Output lines verbatim -->
+ </xsl:template>
+
+ <xsl:template match="imageobject|mediaobject">
+ <xsl:apply-templates/>
+ </xsl:template>
+ <xsl:template match='textobject|videoobject'/>
+ <xsl:template match='imagedata'>
+ <g transform='translate(0 30)'>
+ <image xlink:href='{@fileref}' x='0' y='0' width='600' height='400'/>
+ </g>
+ </xsl:template>
+
+ <xsl:template match='ulink'>
+ <a xlink:href='{@url}'>
+ <xsl:apply-templates/>
+ </a>
+ </xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/css.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/css.xsl
new file mode 100644
index 0000000..d0b47c6
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/css.xsl
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+
+<!-- ====================================================================== -->
+
+<xsl:template name="css-file">
+ <xsl:param name="css" select="'slides.css'"/>
+
+ <xsl:variable name="source.css.dir">
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'css-stylesheet-dir'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$source.css.dir != ''">
+ <xsl:value-of select="$source.css.dir"/>
+ <xsl:text>/</xsl:text>
+ </xsl:when>
+ <xsl:when test="$css.stylesheet.dir != ''">
+ <xsl:value-of select="$css.stylesheet.dir"/>
+ <xsl:text>/</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>http://docbook.sourceforge.net/release/slides/browser/</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:value-of select="$css"/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- active navigation images -->
+
+<xsl:template name="css.stylesheet">
+ <xsl:param name="css" select="$css.stylesheet"/>
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="css-file">
+ <xsl:with-param name="css" select="$css"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/default.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/default.xsl
new file mode 100644
index 0000000..86f2cb3
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/default.xsl
@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+
+<xsl:import href="slides-common.xsl"/>
+
+<xsl:output method="xml" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+
+<xsl:param name="css.stylesheet" select="'slides-default.css'"/>
+
+<xsl:template name="top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navhead">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="Navigation">
+ <tr>
+ <xsl:call-template name="generate.toc.hide.show"/>
+ <td align="left" width="10%">
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+
+ <img alt="Prev" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>&#160;</xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td align="center" width="80%">
+ <xsl:variable name="prestitle">
+ <xsl:value-of select="(/slides/slidesinfo/title |/slides/title)[1]"/>
+ </xsl:variable>
+
+ <span class="navheader">
+ <xsl:value-of select="$prestitle"/>
+ </span>
+ </td>
+ <td align="right" width="10%">
+ <xsl:choose>
+ <xsl:when test="$next">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+
+ <img alt="Next" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>&#160;</xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+ </table>
+ <hr class="top-nav-sep"/>
+ </div>
+</xsl:template>
+
+<xsl:template name="bottom-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navfoot">
+ <hr class="bottom-nav-sep"/>
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="Navigation">
+ <tr>
+ <td align="left" width="80%" valign="top">
+ <span class="navfooter">
+ <xsl:apply-templates select="/slides/slidesinfo/copyright" mode="slide.footer.mode"/>
+ </span>
+ </td>
+ <td align="right" width="20%" valign="top">
+ <span class="index">
+ <xsl:value-of select="count(preceding::foil) + count(preceding::foilgroup) + count(ancestor::foilgroup) + 1"/>
+ </span>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="titlepage-top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navhead">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="Navigation">
+ <tr>
+ <td align="left" width="10%">
+ <span class="toclink">
+ <a href="{$toc.html}">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key">TableofContents</xsl:with-param>
+ </xsl:call-template>
+ </a>
+ </span>
+ </td>
+ <td align="center" width="80%">
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ <td align="right" width="10%">
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<xsl:template name="titlepage-bottom-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navfoot">
+ <table width="100%" border="0" cellspacing="0" cellpadding="0" summary="Navigation">
+ <tr>
+ <td align="left" width="80%" valign="top">
+ <span class="navfooter">
+ <xsl:apply-templates select="/slides/slidesinfo/copyright" mode="slide.footer.mode"/>
+ </span>
+ </td>
+ <td align="right" width="20%" valign="top">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="(following::foilgroup|following::foil)[1]" mode="filename"/>
+ </xsl:attribute>
+ <img alt="Next" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<xsl:template name="toc-top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navhead">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="Navigation">
+ <tr>
+ <td align="left">
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<xsl:template name="toc-bottom-nav">
+ <div class="navfoot">
+ <table width="100%" border="0" cellspacing="0" cellpadding="0" summary="Navigation">
+ <tr>
+ <td align="left" width="80%" valign="top">
+ <span class="navfooter">
+ <xsl:apply-templates select="/slides/slidesinfo/copyright" mode="slide.footer.mode"/>
+ </span>
+ </td>
+ <td align="right" width="20%" valign="top">
+ <a href="{$titlefoil.html}">
+ <img alt="Next" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="generate.toc.hide.show">
+ <xsl:if test="$toc.hide.show != 0">
+ <td>
+ <img hspace="4" alt="Hide/Show TOC">
+ <xsl:attribute name="src">
+ <xsl:call-template name="hidetoc.image"/>
+ </xsl:attribute>
+ <xsl:attribute name="onClick">
+ <xsl:text>toggletoc(this,</xsl:text>
+ <xsl:value-of select="$toc.width"/>
+ <xsl:text>,'</xsl:text>
+ <xsl:call-template name="hidetoc.image"/>
+ <xsl:text>','</xsl:text>
+ <xsl:call-template name="showtoc.image"/>
+ <xsl:text>');</xsl:text>
+ </xsl:attribute>
+ </img>
+ </td>
+ </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="@*" mode="copy">
+ <xsl:attribute name="{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+</xsl:template>
+
+<xsl:template xmlns:html="http://www.w3.org/1999/xhtml" match="html:*">
+ <xsl:element name="{local-name(.)}" namespace="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates select="@*" mode="copy"/>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/flat.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/flat.xsl
new file mode 100644
index 0000000..e0c57e9
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/flat.xsl
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+
+<xsl:import href="slides-common.xsl"/>
+
+<xsl:template match="/">
+ <html>
+ <head>
+ <title><xsl:value-of select="/slides/slidesinfo/title"/></title>
+ </head>
+ <body>
+ <xsl:apply-templates/>
+ </body>
+ </html>
+</xsl:template>
+
+<xsl:template match="slidesinfo">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <div id="{$id}" class="titlepage">
+ <div class="titlepage-body">
+ <xsl:call-template name="titlepage-body"/>
+ </div>
+ </div>
+</xsl:template>
+
+<xsl:template match="slides" mode="toc">
+ <!-- nop -->
+</xsl:template>
+
+<xsl:template match="foil">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <div class="{name(.)}" id="{$id}">
+ <div class="foil-body">
+ <xsl:call-template name="foil-body"/>
+ </div>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="foilgroup">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <div class="{name(.)}" id="{$id}">
+ <div class="foilgroup-body">
+ <xsl:call-template name="foilgroup-body"/>
+ </div>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+
+ <xsl:apply-templates select="foil"/>
+</xsl:template>
+
+<xsl:template match="author" mode="titlepage.mode">
+ <div class="{name(.)}">
+ <h2 class="{name(.)}"><xsl:call-template name="person.name"/></h2>
+ <xsl:apply-templates mode="titlepage.mode" select="./contrib"/>
+ <xsl:apply-templates mode="titlepage.mode" select="./affiliation"/>
+ </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/frames.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/frames.xsl
new file mode 100644
index 0000000..aea4172
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/frames.xsl
@@ -0,0 +1,1982 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+
+<xsl:import href="slides-common.xsl"/>
+
+<xsl:param name="titlefoil.html" select="concat('titlepg', $html.ext)"/>
+
+<xsl:param name="css.stylesheet" select="'slides-frames.css'"/>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="doctype-public">
+ <xsl:param name="frameset" select="0"/>
+ <xsl:choose>
+ <xsl:when test="$stylesheet.result.type='html'">
+ <xsl:choose>
+ <!-- Assume when chunker.output.doctype-public is set the user
+ wants to have doctypes written out. If frameset is set
+ then overide with a frameset public identifier. -->
+ <xsl:when test="$chunker.output.doctype-public != '' and $frameset != 0">
+ <xsl:text>-//W3C//DTD HTML 4.01 Frameset//EN</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$chunker.output.doctype-public"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$stylesheet.result.type='xhtml'">
+ <xsl:choose>
+ <xsl:when test="$frameset != 0">
+ <xsl:text>-//W3C//DTD XHTML 1.0 Frameset//EN</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>-//W3C//DTD XHTML 1.0 Transitional//EN</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="doctype-system">
+ <xsl:param name="frameset" select="0"/>
+ <xsl:choose>
+ <xsl:when test="$stylesheet.result.type='html'">
+ <xsl:choose>
+ <!-- Assume when chunker.output.doctype-system is set the user
+ wants to have doctypes written out. If frameset is set
+ then overide with a frameset system identifier. -->
+ <xsl:when test="$chunker.output.doctype-system != '' and $frameset != 0">
+ <xsl:text>http://www.w3.org/TR/html4/loose.dtd</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$chunker.output.doctype-system"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$stylesheet.result.type='xhtml'">
+ <xsl:choose>
+ <xsl:when test="$frameset != 0">
+ <xsl:text>http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="slides">
+ <xsl:variable name="title">
+ <xsl:choose>
+ <xsl:when test="(slidesinfo/titleabbrev|titleabbrev)">
+ <xsl:value-of select="(slidesinfo/titleabbrev|titleabbrev)[1]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="(slidesinfo/title|title)[1]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="toc.rows" select="1+count(//foilgroup)+count(//foil)"/>
+ <xsl:variable name="toc.height" select="$toc.rows * $toc.row.height"/>
+
+ <xsl:if test="$overlay != 0 and $multiframe != 0">
+ <xsl:message terminate="yes">
+ <xsl:text>Multiframe and overlay are mutually exclusive.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:variable name="doctype-public">
+ <xsl:call-template name="doctype-public">
+ <xsl:with-param name="frameset" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="doctype-system">
+ <xsl:call-template name="doctype-system">
+ <xsl:with-param name="frameset" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="doctype-public" select="$doctype-public"/>
+ <xsl:with-param name="doctype-system" select="$doctype-system"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'frames', $html.ext)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="$title"/></title>
+ </head>
+ <frameset cols="{$toc.width},*" id="topframe">
+ <frame src="{concat('toc', $html.ext)}" name="toc" id="toc" frameborder="1"/>
+ <frame src="{$titlefoil.html}" name="foil" id="foil"/>
+ <noframes>
+ <body class="frameset">
+ <xsl:call-template name="body.attributes"/>
+ <a href="{concat('titleframe', $html.ext)}">
+ <xsl:text>Your browser doesn't support frames.</xsl:text>
+ </a>
+ </body>
+ </noframes>
+ </frameset>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'toc',$html.ext)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title>TOC - <xsl:value-of select="$title"/></title>
+ <xsl:call-template name="system.head.content"/>
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0 or $overlay.logo != ''">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0' or $overlay.logo != ''">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$dynamic.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+function init() {
+ var width = </xsl:text>
+<xsl:value-of select="$toc.width"/>
+<xsl:text>, height = </xsl:text>
+<xsl:value-of select="$toc.row.height"/>
+<xsl:text>;
+ myList = new List(true, width, height, "</xsl:text>
+<xsl:value-of select="$toc.bg.color"/>
+<xsl:text>","</xsl:text>
+<xsl:call-template name="plus.image"/>
+<xsl:text>","</xsl:text>
+<xsl:call-template name="minus.image"/>
+<xsl:text>");
+</xsl:text>
+<xsl:apply-templates mode="ns-toc"/>
+ <xsl:text disable-output-escaping="yes">
+ myList.build(0,0);
+}
+ // --&gt;
+</xsl:text>
+ </script>
+ <style type="text/css">
+ <xsl:text>#spacer { position: absolute; height: </xsl:text>
+ <xsl:value-of select="$toc.height"/>
+ <xsl:text>; }
+</xsl:text>
+ </style>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <body class="toc">
+ <xsl:call-template name="body.attributes"/>
+
+ <xsl:if test="$overlay.logo != ''">
+ <xsl:attribute name="onload">
+ <xsl:text>overlaySetup('ll');</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="$dynamic.toc != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>init(</xsl:text>
+ <xsl:value-of select="$overlay"/>
+ <xsl:text>);</xsl:text>
+ <xsl:if test="$overlay.logo != ''">
+ <xsl:text>overlaySetup('ll');</xsl:text>
+ </xsl:if>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$dynamic.toc = 0">
+ <div class="toc">
+ <xsl:apply-templates mode="toc"/>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <div id="spacer"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="$overlay.logo != ''">
+ <div style="position: absolute; visibility: visible;" id="overlayDiv">
+ <img src="{$overlay.logo}" alt="logo" vspace="20"/>
+ </div>
+ </xsl:if>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="slidesinfo">
+ <xsl:variable name="next" select="(following::foil |following::foilgroup)[1]"/>
+
+ <xsl:variable name="doctype-public">
+ <xsl:call-template name="doctype-public">
+ <xsl:with-param name="frameset" select="$multiframe"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="doctype-system">
+ <xsl:call-template name="doctype-system">
+ <xsl:with-param name="frameset" select="$multiframe"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="doctype-public" select="$doctype-public"/>
+ <xsl:with-param name="doctype-system" select="$doctype-system"/>
+ <xsl:with-param name="filename" select="concat($base.dir,$titlefoil.html)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="title"/></title>
+
+ <xsl:call-template name="system.head.content">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </head>
+ <xsl:choose>
+ <xsl:when test="$multiframe != 0">
+ <xsl:apply-templates select="." mode="multiframe"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="singleframe"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:if test="$multiframe != 0">
+ <xsl:apply-templates select="." mode="multiframe-top"/>
+ <xsl:apply-templates select="." mode="multiframe-body"/>
+ <xsl:apply-templates select="." mode="multiframe-bottom"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="slidesinfo" mode="multiframe">
+ <xsl:variable name="thisfoil">
+ <xsl:value-of select="$titlefoil.html"/>
+ </xsl:variable>
+
+ <frameset rows="{$multiframe.navigation.height},*,{$multiframe.navigation.height}" id="foil">
+ <xsl:attribute name="onload">
+ <xsl:text>javascript:body.focus()</xsl:text>
+ </xsl:attribute>
+ <frame src="top-{$thisfoil}" name="top" id="top" marginheight="0" frameborder="0">
+ </frame>
+ <frame src="body-{$thisfoil}" name="body" id="body" marginheight="0" frameborder="0">
+ </frame>
+ <frame src="bot-{$thisfoil}" name="bottom" id="bottom" marginheight="0" frameborder="0">
+ </frame>
+ <noframes>
+ <body class="frameset">
+ <xsl:call-template name="body.attributes"/>
+ <p>
+ <xsl:text>Your browser doesn't support frames.</xsl:text>
+ </p>
+ </body>
+ </noframes>
+ </frameset>
+</xsl:template>
+
+<xsl:template match="slidesinfo" mode="multiframe-top">
+ <xsl:variable name="thisfoil">
+ <xsl:value-of select="$titlefoil.html"/>
+ </xsl:variable>
+
+ <xsl:variable name="next" select="(following::foil |following::foilgroup)[1]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'top-',$thisfoil)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title>Navigation</title>
+
+ <xsl:call-template name="system.head.content">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0' or $overlay.logo != ''">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </head>
+ <body class="topnavigation" bgcolor="{$multiframe.top.bgcolor}">
+ <xsl:call-template name="foil-top-nav">
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="slidesinfo" mode="multiframe-body">
+ <xsl:variable name="thisfoil">
+ <xsl:value-of select="$titlefoil.html"/>
+ </xsl:variable>
+
+ <xsl:variable name="next" select="(following::foil |following::foilgroup)[1]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'body-',$thisfoil)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title>Body</title>
+
+ <xsl:call-template name="system.head.content">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </head>
+ <xsl:apply-templates select="." mode="singleframe"/>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="slidesinfo" mode="multiframe-bottom">
+ <xsl:variable name="thisfoil">
+ <xsl:value-of select="$titlefoil.html"/>
+ </xsl:variable>
+
+ <xsl:variable name="next" select="(following::foil |following::foilgroup)[1]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'bot-',$thisfoil)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title>Navigation</title>
+
+ <xsl:call-template name="system.head.content">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </head>
+ <body class="botnavigation" bgcolor="{$multiframe.bottom.bgcolor}">
+ <xsl:call-template name="foil-bottom-nav">
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="slidesinfo" mode="singleframe">
+ <xsl:param name="thisfoil">
+ <xsl:value-of select="$titlefoil.html"/>
+ </xsl:param>
+
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="next" select="(following::foil |following::foilgroup)[1]"/>
+
+ <body class="titlepage">
+ <xsl:call-template name="body.attributes"/>
+ <xsl:choose>
+ <xsl:when test="$active.toc != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>newPage('</xsl:text>
+ <xsl:value-of select="$titlefoil.html"/>
+ <xsl:text>',</xsl:text>
+ <xsl:value-of select="$overlay"/>
+ <xsl:text>);</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$overlay != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>overlaySetup('lc');</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>this.focus()</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <div class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </div>
+
+ <xsl:if test="$multiframe=0">
+ <div id="overlayDiv" class="navfoot">
+ <xsl:choose>
+ <xsl:when test="$overlay != 0">
+ <xsl:attribute name="style">
+ <xsl:text>position:absolute;visibility:visible;</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style">
+ <xsl:text>padding-top: 2in;</xsl:text>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <table width="100%" border="0" cellspacing="0" cellpadding="0" summary="Navigation">
+ <tr>
+ <td align="left" width="80%" valign="top">
+ <span class="navfooter">
+ <!-- suppress copyright here; it's probably already on the titlepage
+ <xsl:apply-templates select="/slides/slidesinfo/copyright"
+ mode="slide.footer.mode"/>
+ -->
+ <xsl:text>&#160;</xsl:text>
+ </span>
+ </td>
+ <td align="right" width="20%" valign="top">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <img alt="{$text.next}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </xsl:if>
+ </body>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navhead">
+ <table border="0" width="100%" cellspacing="0" cellpadding="0" summary="Navigation table">
+ <tr>
+ <td align="left" valign="bottom" width="10%">
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <xsl:if test="$multiframe != 0">
+ <xsl:attribute name="target">foil</xsl:attribute>
+ </xsl:if>
+ <img alt="{$text.prev}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">&#160;</span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ <td width="80%" align="center" valign="bottom">
+ <xsl:call-template name="foil.number"/>
+ </td>
+ <td align="right" valign="bottom" width="10%">
+ <xsl:choose>
+ <xsl:when test="$next">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <xsl:if test="$multiframe != 0">
+ <xsl:attribute name="target">foil</xsl:attribute>
+ </xsl:if>
+ <img alt="{$text.next}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">&#160;</span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ </tr>
+ </table>
+ <hr class="top-nav-sep"/>
+ </div>
+</xsl:template>
+
+<xsl:template name="bottom-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navfoot">
+ <hr class="bottom-nav-sep"/>
+ <table border="0" width="100%" cellspacing="0" cellpadding="0" summary="Navigation table">
+ <tr>
+ <td align="left" valign="top">
+ <xsl:apply-templates select="/slides/slidesinfo/copyright" mode="slide.footer.mode"/>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+
+ <td align="right" valign="top">
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <xsl:if test="$multiframe != 0">
+ <xsl:attribute name="target">foil</xsl:attribute>
+ </xsl:if>
+ <img alt="{$text.prev}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">&#160;</span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$next">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <xsl:if test="$multiframe != 0">
+ <xsl:attribute name="target">foil</xsl:attribute>
+ </xsl:if>
+ <img alt="{$text.next}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">&#160;</span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="foilgroup">
+ <xsl:param name="thisfoilgroup">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:param>
+
+ <xsl:variable name="doctype-public">
+ <xsl:call-template name="doctype-public">
+ <xsl:with-param name="frameset" select="$multiframe"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="doctype-system">
+ <xsl:call-template name="doctype-system">
+ <xsl:with-param name="frameset" select="$multiframe"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="foil[1]"/>
+ <xsl:variable name="prev" select="(preceding::foil|parent::foilgroup|/slides)[last()]"/>
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="doctype-public" select="$doctype-public"/>
+ <xsl:with-param name="doctype-system" select="$doctype-system"/>
+ <xsl:with-param name="filename" select="concat($base.dir,$thisfoilgroup)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="title"/></title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <xsl:choose>
+ <xsl:when test="$multiframe != 0">
+ <xsl:apply-templates select="." mode="multiframe"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="singleframe"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:if test="$multiframe != 0">
+ <xsl:apply-templates select="." mode="multiframe-top"/>
+ <xsl:apply-templates select="." mode="multiframe-body"/>
+ <xsl:apply-templates select="." mode="multiframe-bottom"/>
+ </xsl:if>
+
+ <xsl:apply-templates select="foil"/>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="multiframe">
+ <xsl:variable name="thisfoilgroup">
+ <xsl:text>foilgroup</xsl:text>
+ <xsl:number count="foilgroup" level="any" format="01"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:variable>
+
+ <frameset rows="{$multiframe.navigation.height},*,{$multiframe.navigation.height}" id="foil">
+ <xsl:attribute name="onload">
+ <xsl:text>javascript:body.focus()</xsl:text>
+ </xsl:attribute>
+ <frame src="top-{$thisfoilgroup}" name="top" id="top" marginheight="0" frameborder="0"/>
+ <frame src="body-{$thisfoilgroup}" name="body" id="body" marginheight="0" frameborder="0"/>
+ <frame src="bot-{$thisfoilgroup}" name="bottom" id="bottom" marginheight="0" frameborder="0"/>
+ <noframes>
+ <body class="frameset">
+ <xsl:call-template name="body.attributes"/>
+ <p>
+ <xsl:text>Your browser doesn't support frames.</xsl:text>
+ </p>
+ </body>
+ </noframes>
+ </frameset>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="multiframe-top">
+ <xsl:variable name="foilgroup">
+ <xsl:text>foilgroup</xsl:text>
+ <xsl:number count="foilgroup" level="any" format="01"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="foil[1]"/>
+ <xsl:variable name="prev" select="(preceding::foil|parent::foilgroup|/slides)[last()]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'top-',$foilgroup)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title>Navigation</title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <body class="topnavigation" bgcolor="{$multiframe.top.bgcolor}">
+ <xsl:call-template name="foilgroup-top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="multiframe-body">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="foil[1]"/>
+ <xsl:variable name="prev" select="(preceding::foil|parent::foilgroup|/slides)[last()]"/>
+
+ <xsl:variable name="thisfoilgroup">
+ <xsl:text>foilgroup</xsl:text>
+ <xsl:number count="foilgroup" level="any" format="01"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:variable>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'body-',$thisfoilgroup)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title>Body</title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <xsl:apply-templates select="." mode="singleframe"/>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="multiframe-bottom">
+ <xsl:variable name="thisfoilgroup">
+ <xsl:text>foilgroup</xsl:text>
+ <xsl:number count="foilgroup" level="any" format="01"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="foil[1]"/>
+ <xsl:variable name="prev" select="(preceding::foil|parent::foilgroup|/slides)[last()]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'bot-',$thisfoilgroup)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title>Navigation</title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <body class="botnavigation" bgcolor="{$multiframe.bottom.bgcolor}">
+ <xsl:call-template name="foilgroup-bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="singleframe">
+ <xsl:param name="thisfoilgroup">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:param>
+
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="foil[1]"/>
+ <xsl:variable name="prev" select="(preceding::foil|parent::foilgroup|/slides)[last()]"/>
+ <body class="foilgroup">
+ <xsl:call-template name="body.attributes"/>
+ <xsl:choose>
+ <xsl:when test="$active.toc != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>newPage('</xsl:text>
+ <xsl:value-of select="$thisfoilgroup"/>
+ <xsl:text>',</xsl:text>
+ <xsl:value-of select="$overlay"/>
+ <xsl:text>);</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$overlay != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>overlaySetup('lc');</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <div class="{name(.)}" id="{$id}">
+ <xsl:if test="$multiframe=0">
+ <xsl:call-template name="foilgroup-top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <div class="foilgroup-body" id="{$id}">
+ <xsl:call-template name="foilgroup-body">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </div>
+
+ <xsl:if test="$multiframe=0">
+ <div id="overlayDiv">
+ <xsl:if test="$overlay != 0">
+ <xsl:attribute name="style">
+ <xsl:text>position:absolute;visibility:visible;</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="foilgroup-bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </div>
+ </xsl:if>
+ </div>
+
+ <xsl:call-template name="process.footnotes"/>
+ </body>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="foil">
+ <xsl:variable name="thisfoil">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="(following::foil |following::foilgroup)[1]"/>
+ <xsl:variable name="prev" select="(preceding-sibling::foil[1] |parent::foilgroup[1] |/slides)[last()]"/>
+
+ <xsl:variable name="doctype-public">
+ <xsl:call-template name="doctype-public">
+ <xsl:with-param name="frameset" select="$multiframe"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="doctype-system">
+ <xsl:call-template name="doctype-system">
+ <xsl:with-param name="frameset" select="$multiframe"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="doctype-public" select="$doctype-public"/>
+ <xsl:with-param name="doctype-system" select="$doctype-system"/>
+ <xsl:with-param name="filename" select="concat($base.dir,$thisfoil)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="title"/></title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <xsl:choose>
+ <xsl:when test="$multiframe != 0">
+ <xsl:apply-templates select="." mode="multiframe"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="singleframe"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:if test="$multiframe != 0">
+ <xsl:apply-templates select="." mode="multiframe-top"/>
+ <xsl:apply-templates select="." mode="multiframe-body"/>
+ <xsl:apply-templates select="." mode="multiframe-bottom"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="foil" mode="multiframe">
+ <xsl:variable name="foilgroup" select="ancestor::foilgroup"/>
+
+ <xsl:variable name="thisfoil">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:variable>
+
+ <frameset rows="{$multiframe.navigation.height},*,{$multiframe.navigation.height}" id="foil">
+ <xsl:attribute name="onload">
+ <xsl:text>javascript:body.focus()</xsl:text>
+ </xsl:attribute>
+ <frame src="top-{$thisfoil}" name="top" id="top" marginheight="0" frameborder="0">
+ </frame>
+ <frame src="body-{$thisfoil}" name="body" id="body" marginheight="0" frameborder="0">
+ </frame>
+ <frame src="bot-{$thisfoil}" name="bottom" id="bottom" marginheight="0" frameborder="0">
+ </frame>
+ <noframes>
+ <body class="frameset">
+ <xsl:call-template name="body.attributes"/>
+ <p>
+ <xsl:text>Your browser doesn't support frames.</xsl:text>
+ </p>
+ </body>
+ </noframes>
+ </frameset>
+</xsl:template>
+
+<xsl:template match="foil" mode="multiframe-top">
+ <xsl:variable name="thisfoil">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="(following::foil |following::foilgroup)[1]"/>
+ <xsl:variable name="prev" select="(preceding-sibling::foil[1] |parent::foilgroup[1] |/slides)[last()]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'top-',$thisfoil)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title>Navigation</title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javajcript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <body class="topnavigation" bgcolor="{$multiframe.top.bgcolor}">
+ <xsl:call-template name="foil-top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foil" mode="multiframe-body">
+ <xsl:variable name="thisfoil">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:variable>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'body-',$thisfoil)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title>Body</title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="(following::foil |following::foilgroup)[1]"/>
+ <xsl:variable name="prev" select="(preceding-sibling::foil[1] |parent::foilgroup[1] |/slides)[last()]"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+
+ </head>
+ <xsl:apply-templates select="." mode="singleframe"/>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foil" mode="multiframe-bottom">
+ <xsl:variable name="thisfoil">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="(following::foil |following::foilgroup)[1]"/>
+ <xsl:variable name="prev" select="(preceding-sibling::foil[1] |parent::foilgroup[1] |/slides)[last()]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir,'bot-',$thisfoil)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title>Navigation</title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <body class="botnavigation" bgcolor="{$multiframe.bottom.bgcolor}">
+ <xsl:call-template name="foil-bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foil" mode="singleframe">
+ <xsl:param name="thisfoil">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:param>
+
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="(following::foil |following::foilgroup)[1]"/>
+ <xsl:variable name="prev" select="(preceding-sibling::foil[1] |parent::foilgroup[1] |/slides)[last()]"/>
+
+ <body class="foil">
+ <xsl:call-template name="body.attributes"/>
+ <xsl:choose>
+ <xsl:when test="$active.toc != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>newPage('</xsl:text>
+ <xsl:value-of select="$thisfoil"/>
+ <xsl:text>',</xsl:text>
+ <xsl:value-of select="$overlay"/>
+ <xsl:text>);</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$overlay != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>overlaySetup('lc');</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <div class="{name(.)}" id="{$id}">
+ <xsl:if test="$multiframe=0">
+ <xsl:call-template name="foil-top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <div class="foil-body">
+ <xsl:apply-templates/>
+ </div>
+
+ <xsl:if test="$multiframe=0">
+ <div id="overlayDiv">
+ <xsl:if test="$overlay != 0">
+ <xsl:attribute name="style">
+ <xsl:text>position:absolute;visibility:visible;</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="foil-bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </div>
+ </xsl:if>
+ </div>
+
+ <xsl:call-template name="process.footnotes"/>
+ </body>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="slidesinfo" mode="toc">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+ <div id="{$id}" class="toc-slidesinfo">
+ <a href="{$titlefoil.html}" target="foil">
+ <xsl:choose>
+ <xsl:when test="titleabbrev">
+ <xsl:apply-templates select="titleabbrev" mode="toc"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="title" mode="toc"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ <hr/>
+ </div>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="toc">
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+ <xsl:variable name="thisfoilgroup">
+ <xsl:text>foilgroup</xsl:text>
+ <xsl:number count="foilgroup" level="any" format="01"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:variable>
+
+ <div class="toc-foilgroup" id="{$id}">
+ <img alt="-">
+ <xsl:attribute name="src">
+ <xsl:call-template name="minus.image"/>
+ </xsl:attribute>
+ </img>
+ <a href="{$thisfoilgroup}" target="foil">
+ <xsl:choose>
+ <xsl:when test="titleabbrev">
+ <xsl:apply-templates select="titleabbrev" mode="toc"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="title" mode="toc"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ <xsl:apply-templates select="foil" mode="toc"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="foil" mode="toc">
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+ <xsl:variable name="foil">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:variable>
+
+ <div id="{$id}" class="toc-foil">
+ <img alt="-">
+ <xsl:attribute name="src">
+ <xsl:call-template name="bullet.image"/>
+ </xsl:attribute>
+ </img>
+ <a href="{$foil}" target="foil">
+ <xsl:choose>
+ <xsl:when test="titleabbrev">
+ <xsl:apply-templates select="titleabbrev" mode="toc"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="title" mode="toc"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </div>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="slidesinfo" mode="ns-toc">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:text>myList.addItem('</xsl:text>
+
+ <xsl:text disable-output-escaping="yes">&lt;div id="</xsl:text>
+ <xsl:value-of select="$id"/>
+ <xsl:text disable-output-escaping="yes">" class="toc-slidesinfo"&gt;</xsl:text>
+
+ <xsl:text disable-output-escaping="yes">&lt;a href="</xsl:text>
+ <xsl:value-of select="$titlefoil.html"/>
+ <xsl:text disable-output-escaping="yes">" target="foil"&gt;</xsl:text>
+
+ <xsl:call-template name="string.subst">
+ <xsl:with-param name="string">
+ <xsl:choose>
+ <xsl:when test="titleabbrev">
+ <xsl:value-of select="titleabbrev"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="title"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="target">'</xsl:with-param>
+ <xsl:with-param name="replacement">\'</xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:text disable-output-escaping="yes">&lt;\/a&gt;&lt;\/div&gt;</xsl:text>
+ <xsl:text>');
+</xsl:text>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="ns-toc">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:text>subList = new List(false, width, height, "</xsl:text>
+<xsl:value-of select="$toc.bg.color"/>
+<xsl:text>");
+</xsl:text>
+ <xsl:text>subList.setIndent(12);
+</xsl:text>
+ <xsl:apply-templates select="foil" mode="ns-toc"/>
+
+ <xsl:text>myList.addList(subList, '</xsl:text>
+
+ <xsl:text disable-output-escaping="yes">&lt;div id="</xsl:text>
+ <xsl:value-of select="$id"/>
+ <xsl:text disable-output-escaping="yes">" class="toc-foilgroup"&gt;</xsl:text>
+
+ <xsl:text disable-output-escaping="yes">&lt;a href="</xsl:text>
+ <xsl:apply-templates select="." mode="filename"/>
+ <xsl:text disable-output-escaping="yes">" target="foil"&gt;</xsl:text>
+
+ <xsl:call-template name="string.subst">
+ <xsl:with-param name="string">
+ <xsl:choose>
+ <xsl:when test="titleabbrev">
+ <xsl:value-of select="titleabbrev"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="title"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="target">'</xsl:with-param>
+ <xsl:with-param name="replacement">\'</xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:text disable-output-escaping="yes">&lt;\/a&gt;&lt;\/div&gt;</xsl:text>
+ <xsl:text>');
+</xsl:text>
+</xsl:template>
+
+<xsl:template match="foil" mode="ns-toc">
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="ancestor::foilgroup">
+ <xsl:text>subList.addItem('</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>myList.addItem('</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:text disable-output-escaping="yes">&lt;div id="</xsl:text>
+ <xsl:value-of select="$id"/>
+ <xsl:text disable-output-escaping="yes">" class="toc-foil"&gt;</xsl:text>
+
+ <xsl:text disable-output-escaping="yes">&lt;img alt="-" src="</xsl:text>
+ <xsl:call-template name="bullet.image"/>
+ <xsl:text disable-output-escaping="yes">"&gt;&lt;\/img&gt;</xsl:text>
+
+ <xsl:text disable-output-escaping="yes">&lt;a href="</xsl:text>
+ <xsl:apply-templates select="." mode="filename"/>
+ <xsl:text disable-output-escaping="yes">" target="foil"&gt;</xsl:text>
+
+ <xsl:call-template name="string.subst">
+ <xsl:with-param name="string">
+ <xsl:choose>
+ <xsl:when test="titleabbrev">
+ <xsl:value-of select="titleabbrev"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="title"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="target">'</xsl:with-param>
+ <xsl:with-param name="replacement">\'</xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:text disable-output-escaping="yes">&lt;\/a&gt;&lt;\/div&gt;</xsl:text>
+ <xsl:text>');
+</xsl:text>
+</xsl:template>
+
+<xsl:template match="speakernotes" mode="ns-toc">
+ <!-- nop -->
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/graphics.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/graphics.xsl
new file mode 100644
index 0000000..6317a4b
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/graphics.xsl
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+
+<!-- ====================================================================== -->
+
+<xsl:template name="graphics-file">
+ <xsl:param name="image" select="'bullet.gif'"/>
+
+ <xsl:variable name="source.graphics.dir">
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'graphics-dir'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$source.graphics.dir != ''">
+ <xsl:value-of select="$source.graphics.dir"/>
+ <xsl:text>/</xsl:text>
+ </xsl:when>
+ <xsl:when test="$graphics.dir != ''">
+ <xsl:value-of select="$graphics.dir"/>
+ <xsl:text>/</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>http://docbook.sourceforge.net/release/slides/graphics/</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:value-of select="$image"/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- active navigation images -->
+
+<xsl:template name="toc.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$toc.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="home.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$home.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="up.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$up.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="prev.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$prev.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="next.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$next.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- inactive navigation images -->
+
+<xsl:template name="no.toc.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$no.toc.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="no.home.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$no.home.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="no.up.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$no.up.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="no.prev.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$no.prev.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="no.next.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$no.next.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- icon images -->
+
+<xsl:template name="bullet.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$bullet.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="plus.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$plus.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="minus.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$minus.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- hide/show ToC images -->
+
+<xsl:template name="hidetoc.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$hidetoc.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="showtoc.image">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$showtoc.image"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/jscript.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/jscript.xsl
new file mode 100644
index 0000000..b3047ee
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/jscript.xsl
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+
+<xsl:output method="xml" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+
+<xsl:template name="script-dir">
+ <xsl:variable name="source.script.dir">
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'script-dir'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$source.script.dir != ''">
+ <xsl:value-of select="$source.script.dir"/>
+ <xsl:text>/</xsl:text>
+ </xsl:when>
+ <xsl:when test="$script.dir != ''">
+ <xsl:value-of select="$script.dir"/>
+ <xsl:text>/</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>http://docbook.sourceforge.net/release/slides/browser/</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="script-file">
+ <xsl:param name="js" select="'slides.js'"/>
+ <xsl:call-template name="script-dir"/>
+ <xsl:value-of select="$js"/>
+</xsl:template>
+
+<xsl:template name="ua.js">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:param name="language" select="'javascript'"/>
+ <script type="text/javascript" language="{$language}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="script-file">
+ <xsl:with-param name="js" select="$ua.js"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text> </xsl:text>
+ </script>
+</xsl:template>
+
+<xsl:template name="xbDOM.js">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:param name="language" select="'javascript'"/>
+ <script type="text/javascript" language="{$language}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="script-file">
+ <xsl:with-param name="js" select="$xbDOM.js"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text> </xsl:text>
+ </script>
+</xsl:template>
+
+<xsl:template name="xbStyle.js">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:param name="language" select="'javascript'"/>
+ <script type="text/javascript" language="{$language}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="script-file">
+ <xsl:with-param name="js" select="$xbStyle.js"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text> </xsl:text>
+ </script>
+</xsl:template>
+
+<xsl:template name="xbLibrary.js">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:param name="language" select="'javascript'"/>
+ <script type="text/javascript" language="{$language}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="script-file">
+ <xsl:with-param name="js" select="$xbLibrary.js"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text> </xsl:text>
+ </script>
+</xsl:template>
+
+<xsl:template name="xbCollapsibleLists.js">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:param name="language" select="'javascript'"/>
+ <script type="text/javascript" language="{$language}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="script-file">
+ <xsl:with-param name="js" select="$xbCollapsibleLists.js"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text> </xsl:text>
+ </script>
+</xsl:template>
+
+<xsl:template name="overlay.js">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:param name="language" select="'javascript'"/>
+ <script type="text/javascript" language="{$language}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="script-file">
+ <xsl:with-param name="js" select="$overlay.js"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text> </xsl:text>
+ </script>
+</xsl:template>
+
+<xsl:template name="slides.js">
+ <!-- Danger Will Robinson: template shadows parameter -->
+ <xsl:param name="language" select="'javascript'"/>
+ <script type="text/javascript" language="{$language}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="script-file">
+ <xsl:with-param name="js" select="$slides.js"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text> </xsl:text>
+ </script>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/param.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/param.xsl
new file mode 100644
index 0000000..c3ec806
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/param.xsl
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets.-->
+<!-- This file is generated from param.xweb -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+
+<!-- ********************************************************************
+ $Id: param.xweb 6633 2007-02-21 18:33:33Z xmldoc $
+ ********************************************************************
+
+ This file is part of the DocBook Slides Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<xsl:param name="active.toc" select="0"/>
+<xsl:param name="body.bg.color">#FFFFFF</xsl:param>
+<xsl:param name="bullet.image">toc/bullet.png</xsl:param>
+<xsl:param name="css.stylesheet">slides.css</xsl:param>
+<xsl:param name="css.stylesheet.dir"/>
+<xsl:param name="dynamic.toc" select="0"/>
+<xsl:param name="foilgroup.toc" select="1"/>
+<xsl:param name="graphics.dir"/>
+<xsl:param name="hidetoc.image">hidetoc.gif</xsl:param>
+<xsl:param name="home.image">active/nav-home.png</xsl:param>
+<xsl:param name="keyboard.nav" select="1"/>
+<xsl:param name="minus.image">toc/open.png</xsl:param>
+<xsl:param name="multiframe.bottom.bgcolor">white</xsl:param>
+<xsl:param name="multiframe" select="0"/>
+<xsl:param name="multiframe.navigation.height">40</xsl:param>
+<xsl:param name="multiframe.top.bgcolor">white</xsl:param>
+<xsl:param name="nav.separator" select="1"/>
+<xsl:param name="next.image">active/nav-next.png</xsl:param>
+<xsl:param name="no.home.image">inactive/nav-home.png</xsl:param>
+<xsl:param name="no.next.image">inactive/nav-next.png</xsl:param>
+<xsl:param name="no.prev.image">inactive/nav-prev.png</xsl:param>
+<xsl:param name="no.toc.image">inactive/nav-toc.png</xsl:param>
+<xsl:param name="no.up.image">inactive/nav-up.png</xsl:param>
+<xsl:param name="output.indent">no</xsl:param>
+<xsl:param name="overlay" select="0"/>
+<xsl:param name="overlay.js">overlay.js</xsl:param>
+<xsl:param name="overlay.logo">http://docbook.sourceforge.net/release/buttons/slides-1.png</xsl:param>
+<xsl:param name="plus.image">toc/closed.png</xsl:param>
+<xsl:param name="prev.image">active/nav-prev.png</xsl:param>
+<xsl:param name="script.dir"/>
+<xsl:param name="show.foil.number" select="0"/>
+<xsl:param name="showtoc.image">showtoc.gif</xsl:param>
+<xsl:param name="slides.js">slides.js</xsl:param>
+<xsl:param name="text.home">Home</xsl:param>
+<xsl:param name="text.next">Next</xsl:param>
+<xsl:param name="text.prev">Prev</xsl:param>
+<xsl:param name="text.toc">ToC</xsl:param>
+<xsl:param name="text.up">Up</xsl:param>
+<xsl:param name="titlefoil.html" select="concat('index', $html.ext)"/>
+<xsl:param name="toc.bg.color">#FFFFFF</xsl:param>
+<xsl:param name="toc.hide.show" select="0"/>
+<xsl:param name="toc.html" select="concat('toc', $html.ext)"/>
+<xsl:param name="toc.image">active/nav-toc.png</xsl:param>
+<xsl:param name="toc.row.height">22</xsl:param>
+<xsl:param name="toc.width">250</xsl:param>
+<!-- Presumably in pixels? -->
+<xsl:param name="ua.js">ua.js</xsl:param>
+<xsl:param name="up.image">active/nav-up.png</xsl:param>
+<xsl:param name="xbCollapsibleLists.js">xbCollapsibleLists.js</xsl:param>
+<xsl:param name="xbDOM.js">xbDOM.js</xsl:param>
+<xsl:param name="xbStyle.js">xbStyle.js</xsl:param>
+<xsl:param name="xbLibrary.js">xbLibrary.js</xsl:param>
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/plain.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/plain.xsl
new file mode 100644
index 0000000..29d43fc
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/plain.xsl
@@ -0,0 +1,470 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+
+<xsl:import href="slides-common.xsl"/>
+
+<xsl:param name="prev.image" select="'active/nav-prev.png'"/>
+<xsl:param name="next.image" select="'active/nav-next.png'"/>
+<xsl:param name="up.image" select="'active/nav-up.png'"/>
+<xsl:param name="toc.image" select="'active/nav-toc.png'"/>
+<xsl:param name="home.image" select="'active/nav-home.png'"/>
+
+<xsl:param name="no.prev.image" select="'inactive/nav-prev.png'"/>
+<xsl:param name="no.next.image" select="'inactive/nav-next.png'"/>
+<xsl:param name="no.up.image" select="'inactive/nav-up.png'"/>
+<xsl:param name="no.toc.image" select="'inactive/nav-toc.png'"/>
+<xsl:param name="no.home.image" select="'inactive/nav-home.png'"/>
+
+<xsl:param name="css.stylesheet" select="'slides-plain.css'"/>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="top-nav">
+ <xsl:param name="prev"/>
+ <xsl:param name="next"/>
+ <xsl:param name="up"/>
+ <xsl:param name="home"/>
+ <xsl:param name="toc" select="$toc.html"/>
+
+ <div class="navhead">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="Navigation">
+ <tr>
+ <td align="left" width="45%">
+ <span class="slidestitle">
+ <xsl:value-of select="(/slides/slidesinfo/title)[1]"/>
+ </span>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ <td width="10%" align="center" valign="bottom">
+ <xsl:call-template name="foil.number"/>
+ </td>
+ <td align="right" width="45%">
+ <xsl:choose>
+ <xsl:when test="$home">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$home" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$home/slidesinfo/title"/>
+ </xsl:attribute>
+ <img alt="Home" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="home.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Home" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.home.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$toc != ''">
+ <a title="ToC" href="{$toc}">
+ <img alt="ToC" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="toc.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="ToC" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.toc.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$prev/title"/>
+ </xsl:attribute>
+ <img alt="Prev" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Prev" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.prev.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$up">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$up" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$up/title"/>
+ </xsl:attribute>
+ <img alt="Up" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="up.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Up" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.up.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$next">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$next/title"/>
+ </xsl:attribute>
+ <img alt="Next" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Next" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.next.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ </tr>
+ </table>
+ <hr class="top-nav-sep"/>
+ </div>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="titlepage-top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="next"/>
+ <xsl:param name="toc" select="$toc.html"/>
+
+ <div class="navhead">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="Navigation">
+ <tr>
+ <td align="left" width="50%">
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ <td align="right" width="50%">
+ <xsl:choose>
+ <xsl:when test="$home">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$home" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$home/slidesinfo/title"/>
+ </xsl:attribute>
+ <img alt="Home" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="home.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Home" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.home.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$toc.html != ''">
+ <a title="ToC" href="{$toc.html}">
+ <img alt="ToC" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="toc.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="ToC" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.toc.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$prev/title"/>
+ </xsl:attribute>
+ <img alt="Prev" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Prev" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.prev.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$up">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$up" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$up/title"/>
+ </xsl:attribute>
+ <img alt="Up" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="up.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Up" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.up.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$next">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$next/title"/>
+ </xsl:attribute>
+ <img alt="Next" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Next" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.next.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ </tr>
+ </table>
+ <hr class="top-nav-sep"/>
+ </div>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="toc-top-nav">
+ <xsl:param name="home" select="/slides"/>
+ <xsl:param name="up"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="next" select="(foil|foilgroup)[1]"/>
+ <xsl:param name="toc"/>
+
+ <div class="navhead">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="Navigation">
+ <tr>
+ <td align="left" width="50%">
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ <td align="right" width="50%">
+ <xsl:choose>
+ <xsl:when test="$home">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$home" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$home/slidesinfo/title"/>
+ </xsl:attribute>
+ <img alt="Home" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="home.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Home" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.home.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$toc != ''">
+ <a title="ToC" href="{$toc}">
+ <img alt="ToC" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="toc.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="ToC" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.toc.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$prev/title"/>
+ </xsl:attribute>
+ <img alt="Prev" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Prev" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.prev.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$up">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$up" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$up/title"/>
+ </xsl:attribute>
+ <img alt="Up" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="up.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Up" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.up.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$next">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$next/title"/>
+ </xsl:attribute>
+ <img alt="Next" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Next" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.next.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ </tr>
+ </table>
+ <hr class="top-nav-sep"/>
+ </div>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="bottom-nav"/>
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/slides-common.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/slides-common.xsl
new file mode 100644
index 0000000..65d3b7a
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/slides-common.xsl
@@ -0,0 +1,1534 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+
+<xsl:import href="../../xhtml/chunk.xsl"/>
+<xsl:include href="../../VERSION"/>
+
+<xsl:include href="param.xsl"/>
+<xsl:include href="jscript.xsl"/>
+<xsl:include href="graphics.xsl"/>
+<xsl:include href="css.xsl"/>
+
+<xsl:output method="xml" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+
+<xsl:strip-space elements="slides foil foilgroup"/>
+
+<!-- Process the slides -->
+
+<xsl:template match="/">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="slides">
+ <xsl:apply-templates select="." mode="toc"/>
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- Every slide has top and bottom navigation -->
+
+<xsl:template name="top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navhead">
+ <table border="0" width="100%" cellspacing="0" cellpadding="0" summary="Navigation table">
+ <tr>
+ <td align="left" valign="bottom">
+ <xsl:if test="$home">
+ <span class="slidestitle">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$home" mode="filename"/>
+ </xsl:attribute>
+ <xsl:value-of select="($home/title|$home/slidesinfo/title)[1]"/>
+ </a>
+ </span>
+ </xsl:if>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+
+ <td align="right" valign="bottom">
+ <xsl:choose>
+ <xsl:when test="$home">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$home" mode="filename"/>
+ </xsl:attribute>
+ <img alt="{$text.home}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="home.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">
+ <img alt="{$text.home}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.home.image"/>
+ </xsl:attribute>
+ </img>
+ </span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$tocfile">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:value-of select="$tocfile"/>
+ </xsl:attribute>
+ <img alt="{$text.toc}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="toc.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">
+ <img alt="{$text.toc}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.toc.image"/>
+ </xsl:attribute>
+ </img>
+ </span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <img alt="{$text.prev}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">
+ <img alt="{$text.prev}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.prev.image"/>
+ </xsl:attribute>
+ </img>
+ </span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$up">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$up" mode="filename"/>
+ </xsl:attribute>
+ <img alt="{$text.up}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="up.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">
+ <img alt="{$text.up}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.up.image"/>
+ </xsl:attribute>
+ </img>
+ </span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$next">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <img alt="{$text.next}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">
+ <img alt="{$text.next}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.next.image"/>
+ </xsl:attribute>
+ </img>
+ </span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ </tr>
+ </table>
+ <hr class="top-nav-sep"/>
+ </div>
+</xsl:template>
+
+<xsl:template name="bottom-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navfoot">
+ <hr class="bottom-nav-sep"/>
+ <table border="0" width="100%" cellspacing="0" cellpadding="0" summary="Navigation table">
+ <tr>
+ <td align="left" valign="top">
+ <xsl:apply-templates select="/slides/slidesinfo/copyright" mode="slide.footer.mode"/>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+
+ <td align="right" valign="top">
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <img alt="{$text.prev}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">
+ <img alt="{$text.prev}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.prev.image"/>
+ </xsl:attribute>
+ </img>
+ </span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$next">
+ <span class="link-text">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <img alt="{$text.next}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="no-link-text">
+ <img alt="{$text.next}" border="0">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.next.image"/>
+ </xsl:attribute>
+ </img>
+ </span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<!-- Navigation is also provided in the form of links in the head -->
+
+<xsl:template name="links">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <xsl:if test="$tocfile != ''">
+ <link rel="contents" href="{$tocfile}">
+ <xsl:attribute name="title">
+ <xsl:value-of select="/slides/slidesinfo/title"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+
+ <xsl:if test="$home">
+ <link rel="top">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$home" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="($home/title|$home/slidesinfo/title)[1]"/>
+ </xsl:attribute>
+ </link>
+
+ <link rel="first">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$home" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="($home/title|$home/slidesinfo/title)[1]"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+
+ <xsl:if test="$up">
+ <link rel="up">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$up" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="($up/title|$up/slidesinfo/title)[1]"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+
+ <xsl:if test="$prev">
+ <link rel="previous">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="($prev/title|$prev/slidesinfo/title)[1]"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+
+ <xsl:if test="$next">
+ <link rel="next">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$next/title"/>
+ </xsl:attribute>
+ </link>
+
+ <xsl:variable name="last" select="$next/following::foil[last()]"/>
+ <xsl:if test="$last">
+ <link rel="last">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$last" mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$last/title"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ </xsl:if>
+
+ <xsl:for-each select="foil">
+ <link rel="slides">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="title[1]"/>
+ </xsl:attribute>
+ </link>
+ </xsl:for-each>
+
+ <xsl:for-each select="foilgroup|../foilgroup">
+ <link rel="section">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="title[1]"/>
+ </xsl:attribute>
+ </link>
+ </xsl:for-each>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- There are four kinds of slides: titlepage, toc, foil, and foilgroup -->
+<!-- titlepage -->
+
+<xsl:template match="slidesinfo">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="next" select="(/slides/foil|/slides/foilgroup)[1]"/>
+ <xsl:variable name="tocfile" select="$toc.html"/>
+ <xsl:variable name="dir">
+ <xsl:call-template name="dbhtml-dir"/>
+ </xsl:variable>
+
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir, $dir, $titlefoil.html)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="title"/></title>
+
+ <xsl:call-template name="system.head.content">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <!-- Links -->
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="home" select="/slides"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="tocfile" select="$tocfile"/>
+ </xsl:call-template>
+
+ <!-- Scripts -->
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </head>
+ <body>
+ <xsl:attribute name="class">
+ <xsl:text>titlepage</xsl:text>
+ <xsl:if test="@role">
+ <xsl:text>-</xsl:text>
+ <xsl:value-of select="@role"/>
+ </xsl:if>
+ </xsl:attribute>
+
+ <xsl:call-template name="body.attributes"/>
+ <xsl:if test="$overlay != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>overlaySetup('lc')</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <div class="titlepage" id="{$id}">
+ <xsl:call-template name="titlepage-top-nav">
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="tocfile" select="$tocfile"/>
+ </xsl:call-template>
+
+ <div class="titlepage-body">
+ <xsl:call-template name="titlepage-body"/>
+ </div>
+
+ <div id="overlayDiv">
+ <xsl:call-template name="overlayDiv.attributes"/>
+ <xsl:call-template name="titlepage-bottom-nav">
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="tocfile" select="$tocfile"/>
+ </xsl:call-template>
+ </div>
+ </div>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="titlepage-body">
+ <div class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </div>
+</xsl:template>
+
+<xsl:template name="titlepage-top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <xsl:call-template name="top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="tocfile" select="$tocfile"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="titlepage-bottom-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <xsl:call-template name="bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="tocfile" select="$tocfile"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="slidesinfo/title">
+ <h1 class="{name(.)}"><xsl:apply-templates/></h1>
+</xsl:template>
+
+<xsl:template match="slidesinfo/authorgroup">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="slidesinfo/author|slidesinfo/authorgroup/author">
+ <h1 class="{name(.)}"><xsl:apply-imports/></h1>
+</xsl:template>
+
+<xsl:template match="slidesinfo/releaseinfo">
+ <h4 class="{name(.)}"><xsl:apply-templates/></h4>
+</xsl:template>
+
+<xsl:template match="slidesinfo/date">
+ <h4 class="{name(.)}"><xsl:apply-templates/></h4>
+</xsl:template>
+
+<xsl:template match="slidesinfo/copyright">
+ <!-- nop -->
+</xsl:template>
+
+<!-- On slides, output the credits explicitly each time -->
+<xsl:template match="othercredit" mode="titlepage.mode">
+ <xsl:variable name="contrib" select="string(contrib)"/>
+ <xsl:choose>
+ <xsl:when test="contrib">
+ <xsl:call-template name="paragraph">
+ <xsl:with-param name="class" select="name(.)"/>
+ <xsl:with-param name="content">
+ <xsl:apply-templates mode="titlepage.mode" select="contrib"/>
+ <xsl:text>: </xsl:text>
+ <xsl:call-template name="person.name"/>
+ <xsl:apply-templates mode="titlepage.mode" select="./affiliation"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="paragraph">
+ <xsl:with-param name="class" select="name(.)"/>
+ <xsl:with-param name="content">
+ <xsl:call-template name="person.name"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:apply-templates mode="titlepage.mode" select="./affiliation"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- toc -->
+
+<xsl:template match="slides" mode="toc">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="/slides"/>
+ <xsl:variable name="next" select="(foil|foilgroup)[1]"/>
+ <xsl:variable name="tocfile" select="''"/>
+ <xsl:variable name="dir"> <!-- MJ: added -->
+ <xsl:call-template name="dbhtml-dir"/>
+ </xsl:variable>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir, $dir, $toc.html)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="slidesinfo/title"/></title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <!-- Links -->
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="tocfile" select="$tocfile"/>
+ </xsl:call-template>
+
+ <!-- Scripts -->
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+
+ <body class="tocpage">
+ <xsl:call-template name="body.attributes"/>
+ <xsl:if test="$overlay != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>overlaySetup('lc')</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <div id="{$id}">
+ <xsl:call-template name="toc-top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="tocfile" select="$tocfile"/>
+ </xsl:call-template>
+
+ <div class="toc-body">
+ <xsl:call-template name="toc-body"/>
+ </div>
+
+ <div id="overlayDiv">
+ <xsl:call-template name="overlayDiv.attributes"/>
+ <xsl:call-template name="toc-bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="tocfile" select="$tocfile"/>
+ </xsl:call-template>
+ </div>
+ </div>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="toc-body">
+ <h1 class="title">
+ <a href="{$titlefoil.html}">
+ <xsl:value-of select="/slides/slidesinfo/title"/>
+ </a>
+ </h1>
+
+ <p class="toctitle">
+ <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key">TableofContents</xsl:with-param>
+ </xsl:call-template>
+ </strong>
+ </p>
+ <dl class="toc">
+ <xsl:apply-templates select="foilgroup|foil" mode="toc"/>
+ </dl>
+</xsl:template>
+
+<xsl:template name="toc-top-nav">
+ <xsl:param name="home" select="/slides"/>
+ <xsl:param name="up"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="next" select="(foil|foilgroup)[1]"/>
+ <xsl:param name="tocfile"/>
+
+ <xsl:call-template name="top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="tocfile" select="$tocfile"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="toc-bottom-nav">
+ <xsl:param name="home" select="/slides"/>
+ <xsl:param name="up"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="next" select="(foil|foilgroup)[1]"/>
+ <xsl:param name="tocfile"/>
+
+ <xsl:call-template name="bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="tocfile" select="$tocfile"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="toc">
+ <xsl:param name="recursive" select="1"/>
+
+ <dt>
+ <xsl:apply-templates select="." mode="number"/>
+ <xsl:text>. </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:attribute>
+ <xsl:value-of select="title"/>
+ </a>
+ </dt>
+ <xsl:if test="$recursive != 0">
+ <dd>
+ <dl class="toc">
+ <xsl:apply-templates select="foil" mode="toc"/>
+ </dl>
+ </dd>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="foil" mode="toc">
+ <dt>
+ <xsl:apply-templates select="." mode="number"/>
+ <xsl:text>. </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:attribute>
+ <xsl:value-of select="title"/>
+ </a>
+ </dt>
+</xsl:template>
+
+<xsl:template match="title|titleabbrev" mode="toc">
+ <xsl:apply-templates mode="toc"/>
+</xsl:template>
+
+<xsl:template match="speakernotes" mode="toc">
+ <!-- nop -->
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- foil -->
+
+<xsl:template match="foil">
+ <xsl:param name="thisfoil">
+ <xsl:apply-templates select="." mode="chunk-filename"/>
+ </xsl:param>
+
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="(following::foil |following::foilgroup)[1]"/>
+ <xsl:variable name="prev" select="(preceding-sibling::foil[1] |parent::foilgroup[1] |/slides)[last()]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir, $thisfoil)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="title"/></title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <!-- Links -->
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+
+ <!-- Scripts -->
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <body>
+ <xsl:attribute name="class">
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:if test="@role">
+ <xsl:text>-</xsl:text>
+ <xsl:value-of select="@role"/>
+ </xsl:if>
+ </xsl:attribute>
+
+ <xsl:call-template name="body.attributes"/>
+ <xsl:if test="$overlay != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>overlaySetup('lc')</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <div class="{name(.)}" id="{$id}">
+ <xsl:call-template name="foil-top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+
+ <div class="foil-body">
+ <xsl:call-template name="foil-body">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </div>
+
+ <div id="overlayDiv">
+ <xsl:call-template name="overlayDiv.attributes"/>
+ <xsl:call-template name="foil-bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </div>
+ </div>
+
+ <xsl:call-template name="process.footnotes"/>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="foil-body">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template name="foil-top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <xsl:call-template name="top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="foil-bottom-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <xsl:call-template name="bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foil/title">
+ <h1 class="{name(.)}">
+ <xsl:apply-templates/>
+ </h1>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- foilgroup -->
+
+<xsl:template match="foilgroup">
+ <xsl:param name="thisfoilgroup">
+ <xsl:apply-templates select="." mode="chunk-filename"/>
+ </xsl:param>
+
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="home" select="/slides"/>
+ <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
+ <xsl:variable name="next" select="foil[1]"/>
+ <xsl:variable name="prev" select="(preceding::foil|parent::foilgroup|/slides)[last()]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir, $thisfoilgroup)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="title"/></title>
+
+ <xsl:call-template name="system.head.content"/>
+
+ <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
+
+ <!-- Links -->
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+
+ <!-- Scripts -->
+
+ <xsl:if test="$overlay != 0 or $keyboard.nav != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('</xsl:text>
+ <xsl:call-template name="script-dir"/>
+ <xsl:text disable-output-escaping="yes">');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$overlay != '0'">
+ <xsl:call-template name="overlay.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <body>
+ <xsl:attribute name="class">
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:if test="@role">
+ <xsl:text>-</xsl:text>
+ <xsl:value-of select="@role"/>
+ </xsl:if>
+ </xsl:attribute>
+
+ <xsl:call-template name="body.attributes"/>
+ <xsl:if test="$overlay != 0">
+ <xsl:attribute name="onload">
+ <xsl:text>overlaySetup('lc')</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <div class="{name(.)}" id="{$id}">
+ <xsl:call-template name="foilgroup-top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+
+ <!-- n.b. the foilgroup-body template is responsible for generating -->
+ <!-- the foilgroup toc -->
+ <div class="foilgroup-body">
+ <xsl:call-template name="foilgroup-body">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </div>
+
+ <div id="overlayDiv">
+ <xsl:call-template name="overlayDiv.attributes"/>
+ <xsl:call-template name="foilgroup-bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+ </div>
+ </div>
+
+ <xsl:call-template name="process.footnotes"/>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:apply-templates select="foil"/>
+</xsl:template>
+
+<xsl:template match="foilgroup/title">
+ <h1 class="{name(.)}"><xsl:apply-templates/></h1>
+</xsl:template>
+
+<xsl:template name="foilgroup-body">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <xsl:apply-templates select="*[name(.) != 'foil' and name(.) != 'foilgroup']"/>
+
+ <xsl:if test="$foilgroup.toc != 0">
+ <dl class="toc">
+ <xsl:apply-templates select="foil" mode="toc"/>
+ </dl>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="foilgroup-top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <xsl:call-template name="top-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="foilgroup-bottom-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <xsl:call-template name="bottom-nav">
+ <xsl:with-param name="home" select="$home"/>
+ <xsl:with-param name="up" select="$up"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="prev" select="$prev"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="overlayDiv.attributes">
+ <xsl:choose>
+ <xsl:when test="$overlay != 0">
+ <xsl:attribute name="style">
+ <xsl:text>position: absolute; visibility: visible;</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style">padding-top: 2in;</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="processing-instruction('dbhtml')" mode="css.pi">
+ <xsl:variable name="href">
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="."/>
+ <xsl:with-param name="attribute" select="'css-stylesheet'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="$href!=''">
+ <xsl:choose>
+ <xsl:when test="$href = ''">
+ <!-- nop -->
+ </xsl:when>
+ <xsl:when test="contains($href, '//')">
+ <link type="text/css" rel="stylesheet" href="{$href}"/>
+ </xsl:when>
+ <xsl:when test="starts-with($href, '/')">
+ <link type="text/css" rel="stylesheet" href="{$href}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css-file">
+ <xsl:with-param name="css" select="$href"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </link>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="foil" mode="number">
+ <xsl:number count="foil|foilgroup" level="any"/>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="number">
+ <xsl:number count="foil|foilgroup" level="any"/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="slides" mode="filename">
+ <xsl:value-of select="$titlefoil.html"/>
+</xsl:template>
+
+<xsl:template match="foil" mode="filename">
+ <xsl:text>foil</xsl:text>
+ <xsl:number count="foil" level="any" format="01"/>
+ <xsl:value-of select="$html.ext"/>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="filename">
+ <xsl:text>foilgroup</xsl:text>
+ <xsl:number count="foilgroup" level="any" format="01"/>
+ <xsl:value-of select="$html.ext"/>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="processing-instruction('Pub')">
+ <xsl:variable name="pidata"><xsl:value-of select="(.)"/></xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($pidata,'UDT')"/>
+ <xsl:when test="contains($pidata,'/_font')">
+ <xsl:text disable-output-escaping="yes">&lt;/span&gt;</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($pidata,'_font')">
+ <xsl:text disable-output-escaping="yes">&lt;span </xsl:text>
+ <xsl:choose>
+ <xsl:when test="contains($pidata,'green')">class="green"</xsl:when>
+ <xsl:when test="contains($pidata,'blue')">class="blue"</xsl:when>
+ <xsl:when test="contains($pidata,'orange')">class="orange"</xsl:when>
+ <xsl:when test="contains($pidata,'red')">class="red"</xsl:when>
+ <xsl:when test="contains($pidata,'brown')">class="brown"</xsl:when>
+ <xsl:when test="contains($pidata,'violet')">class="violet"</xsl:when>
+ <xsl:when test="contains($pidata,'black')">class="black"</xsl:when>
+ <xsl:otherwise>class="bold"</xsl:otherwise>
+ </xsl:choose>
+ <xsl:text disable-output-escaping="yes">&gt;</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+<!-- blocks -->
+
+<xsl:template match="figure">
+ <div class="{name(.)}">
+ <xsl:apply-imports/>
+ </div>
+ <xsl:if test="following-sibling::*"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template match="copyright" mode="slide.footer.mode">
+ <span class="{name(.)}">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Copyright'"/>
+ </xsl:call-template>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat">copyright</xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:call-template name="copyright.years">
+ <xsl:with-param name="years" select="year"/>
+ <xsl:with-param name="print.ranges" select="$make.year.ranges"/>
+ <xsl:with-param name="single.year.ranges" select="$make.single.year.ranges"/>
+ </xsl:call-template>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:apply-templates select="holder" mode="titlepage.mode"/>
+ </span>
+</xsl:template>
+
+<!-- ============================================================ -->
+<!-- inlines -->
+
+<xsl:template match="link">
+ <xsl:call-template name="link">
+ <xsl:with-param name="a.target" select="'foil'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="ulink">
+ <a>
+ <xsl:if test="@id">
+ <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
+ <xsl:if test="$ulink.target != ''">
+ <xsl:attribute name="target">
+ <xsl:value-of select="$ulink.target"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="count(child::node())=0">
+ <xsl:value-of select="@url"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ <xsl:if test="@role='show'">
+ <xsl:text> (</xsl:text>
+ <xsl:value-of select="@url"/>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+</xsl:template>
+
+<xsl:template match="title/ulink">
+ <a>
+ <xsl:if test="@id">
+ <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
+ <xsl:if test="$ulink.target != ''">
+ <xsl:attribute name="target">
+ <xsl:value-of select="$ulink.target"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="count(child::node())=0">
+ <xsl:value-of select="@url"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+</xsl:template>
+
+<xsl:template match="subtitle">
+ <h2 class="subtitle">
+ <xsl:apply-templates/>
+ </h2>
+</xsl:template>
+
+<xsl:template match="graphic">
+ <center>
+ <!-- can't this be done a better way? -->
+ <xsl:apply-imports/>
+ </center>
+</xsl:template>
+
+<xsl:template match="titleabbrev">
+ <!-- nop -->
+</xsl:template>
+
+<xsl:template match="speakernotes">
+ <!-- nop -->
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- Chunking for slides -->
+
+<xsl:template name="chunk">
+ <xsl:param name="node" select="."/>
+ <xsl:choose>
+ <xsl:when test="name($node)='slides'">1</xsl:when>
+ <xsl:when test="name($node)='foilgroup'">1</xsl:when>
+ <xsl:when test="name($node)='foil'">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="chunk-filename">
+ <xsl:param name="recursive">0</xsl:param>
+ <!-- returns the filename of a chunk -->
+ <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+ <xsl:variable name="filename">
+ <xsl:call-template name="pi.dbhtml_filename"/>
+ </xsl:variable>
+ <xsl:variable name="dir">
+ <xsl:call-template name="dbhtml-dir"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$ischunk='0'">
+ <!-- if called on something that isn't a chunk, walk up... -->
+ <xsl:choose>
+ <xsl:when test="count(./parent::*)&gt;0">
+ <xsl:apply-templates mode="chunk-filename" select="./parent::*">
+ <xsl:with-param name="recursive" select="$recursive"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <!-- unless there is no up, in which case return "" -->
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:when test="not($recursive) and $filename != ''">
+ <!-- if this chunk has an explicit name, use it -->
+ <xsl:if test="$dir != ''">
+ <xsl:value-of select="$dir"/>
+ <xsl:text>/</xsl:text>
+ </xsl:if>
+ <xsl:value-of select="$filename"/>
+ </xsl:when>
+
+ <xsl:when test="name(.)='foil'">
+ <xsl:variable name="foilnumber">
+ <xsl:number count="foil" level="any"/>
+ </xsl:variable>
+
+ <xsl:value-of select="$dir"/>
+ <xsl:text>foil</xsl:text>
+ <xsl:number value="$foilnumber" format="01"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:when>
+
+ <xsl:when test="name(.)='foilgroup'">
+ <xsl:variable name="foilgroupnumber">
+ <xsl:number count="foilgroup" level="any" format="01"/>
+ </xsl:variable>
+
+ <xsl:value-of select="$dir"/>
+ <xsl:text>foilgroup</xsl:text>
+ <xsl:number value="$foilgroupnumber" format="01"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:text>chunk-filename-error-</xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:number level="any" format="01" from="set"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- Handling of xrefs -->
+
+<xsl:template match="foil|foilgroup" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+
+ <xsl:apply-templates select="." mode="object.xref.markup">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="@*" mode="copy">
+ <xsl:attribute name="{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+</xsl:template>
+
+<xsl:template xmlns:html="http://www.w3.org/1999/xhtml" match="html:*">
+ <xsl:element name="{local-name(.)}" namespace="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates select="@*" mode="copy"/>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="foil.number">
+ <xsl:choose>
+ <xsl:when test="$show.foil.number != 0 and self::foil">
+ <xsl:number count="foil" level="any"/>
+ /
+ <xsl:value-of select="count(//foil)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ &#160;
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/tables.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/tables.xsl
new file mode 100644
index 0000000..7d5ec6b
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/tables.xsl
@@ -0,0 +1,334 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+
+<xsl:import href="slides-common.xsl"/>
+
+<xsl:param name="blank.image" select="'blank.png'"/>
+<xsl:param name="arrow.image" select="'pointer.png'"/>
+
+<xsl:param name="toc.bg.color">#6A719C</xsl:param>
+<xsl:param name="toc.width">220</xsl:param>
+
+<xsl:param name="css.stylesheet" select="'slides-table.css'"/>
+
+<!-- ============================================================ -->
+
+<xsl:template name="foilgroup-body">
+ <table border="0" width="100%" summary="Navigation and body table" cellpadding="0" cellspacing="0">
+ <tr>
+ <td width="{$toc.width}" valign="top" align="left">
+ <xsl:if test="$toc.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$toc.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+ <div class="ttoc">
+ <xsl:apply-templates select="." mode="t-toc"/>
+ </div>
+ </td>
+ <td>&#160;</td>
+ <td valign="top" align="left">
+ <xsl:if test="$body.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$body.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+ <div class="{name(.)}">
+ <xsl:apply-templates select="*[name(.) != 'foil' and name(.) != 'foilgroup']"/>
+ </div>
+
+ <xsl:if test="$foilgroup.toc != 0">
+ <dl class="toc">
+ <xsl:apply-templates select="foil" mode="toc"/>
+ </dl>
+ </xsl:if>
+ </td>
+ </tr>
+ </table>
+</xsl:template>
+
+<xsl:template name="foil-body">
+ <table border="0" width="100%" summary="Navigation and body table" cellpadding="0" cellspacing="0">
+ <tr>
+ <td width="{$toc.width}" valign="top" align="left">
+ <xsl:if test="$toc.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$toc.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+ <div class="ttoc">
+ <xsl:apply-templates select="." mode="t-toc"/>
+ </div>
+ </td>
+ <td>&#160;</td>
+ <td valign="top" align="left">
+ <xsl:if test="$body.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$body.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+ <div class="{name(.)}">
+ <xsl:apply-templates/>
+ </div>
+ </td>
+ </tr>
+ </table>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="foilgroup" mode="t-toc">
+ <xsl:variable name="thisfoilgroup" select="."/>
+
+ <xsl:for-each select="/slides/foil|/slides/foilgroup">
+ <xsl:choose>
+ <xsl:when test="name(.) = 'foilgroup'">
+ <xsl:choose>
+ <xsl:when test="$thisfoilgroup = .">
+ <img alt="+">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$arrow.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt=" ">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$blank.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <span class="ttoc-foilgroup">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="toc-title"/>
+ </a>
+ </span>
+ <br/>
+
+ <xsl:if test="$thisfoilgroup = .">
+ <xsl:for-each select="foil">
+ <img alt=" ">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$blank.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ <img alt=" ">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$blank.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+
+ <span class="ttoc-foil">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="toc-title"/>
+ </a>
+ </span>
+ <br/>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt=" ">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$blank.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ <span class="ttoc-foil">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="toc-title"/>
+ </a>
+ </span>
+ <br/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="foil" mode="t-toc">
+ <xsl:variable name="thisfoil" select="."/>
+
+ <xsl:for-each select="/slides/foil|/slides/foilgroup">
+ <xsl:choose>
+ <xsl:when test="name(.) = 'foilgroup'">
+ <img alt=" ">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$blank.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ <span class="ttoc-foilgroup">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="toc-title"/>
+ </a>
+ </span>
+ <br/>
+
+ <xsl:if test="$thisfoil/ancestor::foilgroup = .">
+ <xsl:for-each select="foil">
+ <img alt=" ">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$blank.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+
+ <xsl:choose>
+ <xsl:when test="$thisfoil = .">
+ <img alt="+">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$arrow.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt=" ">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$blank.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <span class="ttoc-foil">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="toc-title"/>
+ </a>
+ </span>
+ <br/>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- foils only -->
+ <xsl:for-each select="/slides/foil">
+ <xsl:choose>
+ <xsl:when test="$thisfoil = .">
+ <img alt="+">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$arrow.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt=" ">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$blank.image"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <span class="ttoc-foil">
+ <xsl:apply-templates select="." mode="toc-title"/>
+ </span>
+ <br/>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="slides" mode="toc-title">
+ <xsl:call-template name="nobreak">
+ <xsl:with-param name="string">
+ <xsl:choose>
+ <xsl:when test="slidesinfo/titleabbrev">
+ <xsl:value-of select="slidesinfo/titleabbrev"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="slidesinfo/title"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foilgroup" mode="toc-title">
+ <xsl:call-template name="nobreak">
+ <xsl:with-param name="string">
+ <xsl:choose>
+ <xsl:when test="titleabbrev">
+ <xsl:value-of select="titleabbrev"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="title"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foil" mode="toc-title">
+ <xsl:call-template name="nobreak">
+ <xsl:with-param name="string">
+ <xsl:choose>
+ <xsl:when test="titleabbrev">
+ <xsl:value-of select="titleabbrev"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="title"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="nobreak">
+ <xsl:param name="string" select="''"/>
+ <xsl:choose>
+ <xsl:when test="contains($string, ' ')">
+ <xsl:value-of select="substring-before($string, ' ')"/>
+ <xsl:text>&#160;</xsl:text>
+ <xsl:call-template name="nobreak">
+ <xsl:with-param name="string" select="substring-after($string, ' ')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$string"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/vslides.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/vslides.xsl
new file mode 100644
index 0000000..26e9961
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/vslides.xsl
@@ -0,0 +1,652 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+
+<xsl:import href="slides-common.xsl"/>
+
+<xsl:param name="but-fforward.png" select="'active/but-fforward.png'"/>
+<xsl:param name="but-info.png" select="'active/but-info.png'"/>
+<xsl:param name="but-next.png" select="'active/but-next.png'"/>
+<xsl:param name="but-prev.png" select="'active/but-prev.png'"/>
+<xsl:param name="but-rewind.png" select="'active/but-rewind.png'"/>
+
+<xsl:param name="but-xfforward.png" select="'inactive/but-fforward.png'"/>
+<xsl:param name="but-xinfo.png" select="'inactive/but-info.png'"/>
+<xsl:param name="but-xnext.png" select="'inactive/but-next.png'"/>
+<xsl:param name="but-xprev.png" select="'inactive/but-prev.png'"/>
+<xsl:param name="but-xrewind.png" select="'inactive/but-rewind.png'"/>
+
+<!-- overrides for this stylesheet -->
+<xsl:param name="titlefoil.html" select="concat('index', $html.ext)"/>
+<xsl:param name="toc.width" select="40"/>
+
+<!-- ============================================================ -->
+
+<xsl:template match="slides">
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir, $toc.html)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="slidesinfo/title"/></title>
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="next" select="/slides"/>
+ <xsl:with-param name="tocfile" select="$toc.html"/>
+ </xsl:call-template>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('../browser');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+ </head>
+ <body class="tocpage">
+ <xsl:call-template name="body.attributes"/>
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <table border="0" width="100%" summary="Navigation and body table" cellpadding="0" cellspacing="0">
+ <tr>
+ <td>&#160;</td>
+ <td><xsl:apply-templates select="." mode="header"/></td>
+ </tr>
+
+ <tr>
+ <td width="{$toc.width}" valign="top" align="left">
+ <xsl:if test="$toc.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$toc.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="vertical-navigation">
+ <xsl:with-param name="next" select="/slides"/>
+ <xsl:with-param name="tocfile"/>
+ </xsl:call-template>
+
+ </td>
+ <td valign="top" align="left">
+ <xsl:if test="$body.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$body.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <div class="{name(.)}">
+
+ <div class="toc-body">
+ <xsl:call-template name="toc-body"/>
+ </div>
+
+ </div>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&#160;</td>
+ <td><xsl:apply-templates select="." mode="footer"/></td>
+ </tr>
+ </table>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="slidesinfo">
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir, $titlefoil.html)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="title"/></title>
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="next" select="(/slides/foil|/slides/foilgroup)[1]"/>
+ <xsl:with-param name="tocfile" select="$toc.html"/>
+ </xsl:call-template>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('../browser');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+ </head>
+ <body class="titlepage">
+ <xsl:call-template name="body.attributes"/>
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <table border="0" width="100%" summary="Navigation and body table" cellpadding="0" cellspacing="0">
+ <tr>
+ <td>&#160;</td>
+ <td><xsl:apply-templates select="." mode="header"/></td>
+ </tr>
+
+ <tr>
+ <td width="{$toc.width}" valign="top" align="left">
+ <xsl:if test="$toc.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$toc.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="vertical-navigation">
+ <xsl:with-param name="first"/>
+ <xsl:with-param name="last" select="(following::foilgroup|following::foil)[last()]"/>
+ <xsl:with-param name="next" select="(following::foilgroup|following::foil)[1]"/>
+ </xsl:call-template>
+
+ </td>
+ <td valign="top" align="left">
+ <xsl:if test="$body.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$body.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+ <div class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </div>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&#160;</td>
+ <td><xsl:apply-templates select="." mode="footer"/></td>
+ </tr>
+ </table>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="foilgroup">
+ <xsl:param name="thisfoilgroup">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:param>
+
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="nextfoil" select="foil[1]"/>
+ <xsl:variable name="lastfoil" select="(descendant::foil|following::foil)[last()]"/>
+ <xsl:variable name="prevfoil" select="(preceding::foil|/slides)[last()]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir, $thisfoilgroup)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="title"/></title>
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="prev" select="$prevfoil"/>
+ <xsl:with-param name="next" select="$nextfoil"/>
+ </xsl:call-template>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('../browser');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+ </head>
+ <body class="foilgroup">
+ <xsl:call-template name="body.attributes"/>
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <table border="0" width="100%" summary="Navigation and body table" cellpadding="0" cellspacing="0">
+ <tr>
+ <td>&#160;</td>
+ <td><xsl:apply-templates select="." mode="header"/></td>
+ </tr>
+
+ <tr>
+ <td width="{$toc.width}" valign="top" align="left">
+ <xsl:if test="$toc.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$toc.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="vertical-navigation">
+ <xsl:with-param name="last" select="$lastfoil"/>
+ <xsl:with-param name="prev" select="$prevfoil"/>
+ <xsl:with-param name="next" select="$nextfoil"/>
+ </xsl:call-template>
+
+ </td>
+ <td valign="top" align="left">
+ <xsl:if test="$body.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$body.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <div class="{name(.)}">
+ <xsl:apply-templates/>
+ </div>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&#160;</td>
+ <td><xsl:apply-templates select="." mode="footer"/></td>
+ </tr>
+ </table>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:apply-templates select="foil"/>
+</xsl:template>
+
+<xsl:template match="foil">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="foilgroup" select="ancestor::foilgroup"/>
+
+ <xsl:variable name="thisfoil">
+ <xsl:apply-templates select="." mode="filename"/>
+ </xsl:variable>
+
+ <xsl:variable name="nextfoil" select="(following::foil |following::foilgroup)[1]"/>
+
+ <xsl:variable name="lastfoil" select="following::foil[last()]"/>
+
+ <xsl:variable name="prevfoil" select="(preceding-sibling::foil[1] |parent::foilgroup[1] |/slides)[last()]"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="indent" select="$output.indent"/>
+ <xsl:with-param name="filename" select="concat($base.dir, $thisfoil)"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <title><xsl:value-of select="title"/></title>
+ <xsl:if test="$css.stylesheet != ''">
+ <link type="text/css" rel="stylesheet">
+ <xsl:attribute name="href">
+ <xsl:call-template name="css.stylesheet"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
+
+ <xsl:call-template name="links">
+ <xsl:with-param name="prev" select="$prevfoil"/>
+ <xsl:with-param name="next" select="$nextfoil"/>
+ </xsl:call-template>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <script language="javascript" type="text/javascript">
+ <xsl:text> </xsl:text>
+ </script>
+ </xsl:if>
+
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:call-template name="ua.js"/>
+ <xsl:call-template name="xbDOM.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ <xsl:call-template name="xbLibrary.js"/>
+ <script language="javascript" type="text/javascript">
+ <xsl:text disable-output-escaping="yes">
+ &lt;!--
+ xblibrary = new xbLibrary('../browser');
+ // --&gt;
+ </xsl:text>
+ </script>
+ <xsl:call-template name="xbStyle.js"/>
+ <xsl:call-template name="xbCollapsibleLists.js"/>
+ <xsl:call-template name="slides.js">
+ <xsl:with-param name="language" select="'javascript'"/>
+ </xsl:call-template>
+ </xsl:if>
+ </head>
+ <body class="foil">
+ <xsl:call-template name="body.attributes"/>
+ <xsl:if test="$keyboard.nav != 0">
+ <xsl:attribute name="onkeypress">
+ <xsl:text>navigate(event)</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <table border="0" width="100%" summary="Navigation and body table" cellpadding="0" cellspacing="0">
+ <tr>
+ <td>&#160;</td>
+ <td><xsl:apply-templates select="." mode="header"/></td>
+ </tr>
+
+ <tr>
+ <td width="{$toc.width}" valign="top" align="left">
+ <xsl:if test="$toc.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$toc.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="vertical-navigation">
+ <xsl:with-param name="last" select="$lastfoil"/>
+ <xsl:with-param name="prev" select="$prevfoil"/>
+ <xsl:with-param name="next" select="$nextfoil"/>
+ </xsl:call-template>
+
+ </td>
+ <td valign="top" align="left">
+ <xsl:if test="$body.bg.color != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$body.bg.color"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <div class="{name(.)}">
+ <xsl:apply-templates/>
+ </div>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&#160;</td>
+ <td><xsl:apply-templates select="." mode="footer"/></td>
+ </tr>
+ </table>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="slidesinfo" mode="header">
+ <div class="navhead">
+ <!-- nop -->
+ </div>
+</xsl:template>
+
+<xsl:template match="foil|foilgroup" mode="header">
+ <div class="navhead">
+ <table border="0" width="100%" summary="Header table" cellpadding="0" cellspacing="0">
+ <tr>
+ <td align="left">
+ <xsl:apply-templates select="/slides/slidesinfo/title" mode="slide.footer.mode"/>
+ </td>
+ <td align="right">
+ <xsl:value-of select="count(preceding::foil) + count(preceding::foilgroup) + count(ancestor::foilgroup) + 1"/>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<xsl:template match="slidesinfo" mode="footer">
+ <div class="navfoot">
+ <!-- nop -->
+ </div>
+</xsl:template>
+
+<xsl:template match="foil|foilgroup" mode="footer">
+ <div class="navfoot">
+ <table border="0" width="100%" summary="Header table" cellpadding="0" cellspacing="0">
+ <tr>
+ <td align="center">
+ <xsl:text>Slide </xsl:text>
+ <xsl:value-of select="count(preceding::foil) + count(preceding::foilgroup) + count(ancestor::foilgroup) + 1"/>
+ <xsl:text> of </xsl:text>
+ <xsl:value-of select="count(//foil) + count(//foilgroup)"/>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<xsl:template match="slides" mode="footer"/>
+
+<!-- ============================================================ -->
+
+<xsl:template name="vertical-navigation">
+ <xsl:param name="first" select="/slides"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="last"/>
+ <xsl:param name="next"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="vnav">
+ <xsl:choose>
+ <xsl:when test="$first">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$first" mode="filename"/>
+ </xsl:attribute>
+ <img border="0" alt="First">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$but-rewind.png"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="First">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$but-xrewind.png"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <br/>
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <img border="0" alt="Previous">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$but-prev.png"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Previous">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$but-xprev.png"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <br/>
+ <xsl:choose>
+ <xsl:when test="$next">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <img border="0" alt="Last">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$but-next.png"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Last">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$but-xnext.png"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ <br/>
+ <xsl:choose>
+ <xsl:when test="$last">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$last" mode="filename"/>
+ </xsl:attribute>
+ <img border="0" alt="Next">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$but-fforward.png"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img alt="Next">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$but-xfforward.png"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <br/>
+ <br/>
+
+ <xsl:choose>
+ <xsl:when test="$tocfile != ''">
+ <a href="{$tocfile}">
+ <img border="0" alt="ToC">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$but-info.png"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img border="0" alt="ToC">
+ <xsl:attribute name="src">
+ <xsl:call-template name="graphics-file">
+ <xsl:with-param name="image" select="$but-xinfo.png"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/w3c.xsl b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/w3c.xsl
new file mode 100644
index 0000000..d361a33
--- /dev/null
+++ b/3rdParty/SCons/scons-3.0.1/engine/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/xhtml/w3c.xsl
@@ -0,0 +1,358 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+
+<xsl:import href="slides-common.xsl"/>
+
+<xsl:param name="logo.image.uri" select="''"/>
+<xsl:param name="logo.uri" select="''"/>
+<xsl:param name="logo.title" select="''"/>
+
+<xsl:param name="next.image" select="'active/w3c-next.png'"/>
+<xsl:param name="no.next.image" select="'inactive/w3c-next.png'"/>
+
+<xsl:param name="prev.image" select="'active/w3c-prev.png'"/>
+<xsl:param name="no.prev.image" select="'inactive/w3c-prev.png'"/>
+
+<xsl:param name="toc.image" select="'active/w3c-toc.png'"/>
+<xsl:param name="no.toc.image" select="'inactive/w3c-toc.png'"/>
+
+<xsl:param name="css.stylesheet" select="'slides-w3c.css'"/>
+
+<xsl:template name="logo">
+ <xsl:if test="$logo.uri != ''">
+ <a href="{$logo.uri}" title="{$logo.title}">
+ <xsl:choose>
+ <xsl:when test="$logo.image.uri=''">
+ <xsl:value-of select="$logo.title"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <img src="{$logo.image.uri}" alt="{$logo.title}" border="0"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="overlayDiv.attributes">
+ <xsl:if test="$overlay != 0">
+ <xsl:attribute name="style">
+ <xsl:text>position: absolute; visibility: visible;</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navhead">
+ <table class="navbar" cellspacing="0" cellpadding="0" border="0" width="97%" summary="Navigation buttons">
+ <tr>
+ <td align="left" valign="top">
+ <xsl:call-template name="logo"/>
+ </td>
+ <td valign="top" nowrap="nowrap" width="150">
+ <div align="right">
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <a rel="previous" accesskey="P">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <img border="0" width="32" height="32" alt=" Previous" title="{$prev/title}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img border="0" width="32" height="32" alt=" Previous" title="">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.prev.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="$tocfile != ''">
+ <a rel="contents" href="{$tocfile}" accesskey="C">
+ <img border="0" width="32" height="32" alt=" Contents" title="Table of Contents">
+ <xsl:attribute name="src">
+ <xsl:call-template name="toc.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img border="0" width="32" height="32" alt=" Contents" title="Table of Contents">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.toc.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="$next">
+ <a rel="next" accesskey="N">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <img border="0" width="32" height="32" alt=" Next" title="{$next/title}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img border="0" width="32" height="32" alt=" Next" title="">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.next.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+ </td>
+ </tr>
+ </table>
+
+ <xsl:apply-templates select="title"/>
+ <hr class="top-nav-sep"/>
+ </div>
+</xsl:template>
+
+<xsl:template name="bottom-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navfoot">
+ <hr class="bottom-nav-sep"/>
+ <table class="footer" cellspacing="0" cellpadding="0" border="0" width="97%" summary="footer">
+ <tr>
+ <td align="left" valign="top">
+ <xsl:variable name="author" select="(/slides/slidesinfo//author |/slides/slidesinfo//editor)"/>
+ <xsl:for-each select="$author">
+ <xsl:choose>
+ <xsl:when test=".//email">
+ <a href="mailto:{.//email[1]}">
+ <xsl:call-template name="person.name"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="person.name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="position() &lt; last()">, </xsl:if>
+ </xsl:for-each>
+ </td>
+ <td align="right" valign="top">
+ <span class="index">
+ <xsl:value-of select="count(preceding::foil) + count(preceding::foilgroup) + count(ancestor::foilgroup) + 1"/>
+ <xsl:text> of </xsl:text>
+ <xsl:value-of select="count(//foil|//foilgroup)"/>
+ </span>
+ </td>
+
+ <td valign="top" nowrap="nowrap" width="150">
+ <div align="right">
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <a rel="previous" accesskey="P">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <img border="0" width="32" height="32" alt=" Previous" title="{$prev/title}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img border="0" width="32" height="32" alt=" Prev" title="">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.prev.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="$next">
+ <a rel="next" accesskey="N">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <img border="0" width="32" height="32" alt=" Next" title="{$next/title}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img border="0" width="32" height="32" alt=" Next" title="">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.next.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="titlepage-top-nav">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <div class="navhead">
+ <table class="navbar" cellspacing="0" cellpadding="0" border="0" width="97%" summary="Navigation buttons">
+ <tr>
+ <td align="left" valign="top">
+ <xsl:call-template name="logo"/>
+ </td>
+ <td valign="top" nowrap="nowrap" width="150">
+ <div align="right">
+ <xsl:choose>
+ <xsl:when test="$prev">
+ <a rel="previous" accesskey="P">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$prev" mode="filename"/>
+ </xsl:attribute>
+ <img border="0" width="32" height="32" alt=" Previous" title="{$prev/title}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="prev.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img border="0" width="32" height="32" alt=" Previous" title="">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.prev.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="$tocfile != ''">
+ <a rel="contents" href="{$tocfile}" accesskey="C">
+ <img border="0" width="32" height="32" alt=" Contents" title="Table of Contents">
+ <xsl:attribute name="src">
+ <xsl:call-template name="toc.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img border="0" width="32" height="32" alt=" Contents" title="Table of Contents">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.toc.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="$next">
+ <a rel="next" accesskey="N">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="$next" mode="filename"/>
+ </xsl:attribute>
+ <img border="0" width="32" height="32" alt=" Next" title="{$next/title}">
+ <xsl:attribute name="src">
+ <xsl:call-template name="next.image"/>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img border="0" width="32" height="32" alt=" Next" title="">
+ <xsl:attribute name="src">
+ <xsl:call-template name="no.next.image"/>
+ </xsl:attribute>
+ </img>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+ </td>
+ </tr>
+ </table>
+
+ <hr class="top-nav-sep"/>
+ </div>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="foil-body">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <!-- skip the title -->
+ <xsl:apply-templates select="*[name(.) != 'title']"/>
+</xsl:template>
+
+<xsl:template name="foilgroup-body">
+ <xsl:param name="home"/>
+ <xsl:param name="up"/>
+ <xsl:param name="next"/>
+ <xsl:param name="prev"/>
+ <xsl:param name="tocfile" select="$toc.html"/>
+
+ <!-- skip the title -->
+ <xsl:apply-templates select="*[name(.) != 'title' and name(.) != 'foil' and name(.) != 'foilgroup']"/>
+
+ <xsl:if test="$foilgroup.toc != 0">
+ <dl class="toc">
+ <xsl:apply-templates select="foil" mode="toc"/>
+ </dl>
+ </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="@*" mode="copy">
+ <xsl:attribute name="{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+</xsl:template>
+
+<xsl:template xmlns:html="http://www.w3.org/1999/xhtml" match="html:*">
+ <xsl:element name="{local-name(.)}" namespace="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates select="@*" mode="copy"/>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+</xsl:stylesheet>